AndroidDev 板


LINE

※ 引述《jakevin (真。假凯文)》之铭言: : 版友们午安 : 不知道有没有人做过多个按钮群组的onClick事件 : 今天我的问题是 : [1] [2] [3]....[10] 共十个按钮 : 每个按钮执行一个相同的事件就是 按钮字改成"你好" : 我在main.xml 把每个按钮都加入了 android:onClick="myClickHandler" : 但现在问题来了 : 我要怎麽知道是哪一个按钮按下去的? : public void myClickHandler(View target) { : // Do stuff : } : 我可以从taget中得知是哪个按钮按下去的,但是我不知道该怎麽去对taget下指令 : 比方说 target.setText("你好"); : 想请问这该如何处理是好? : 谢谢大家 我的作法: btn1.setOnClickListener(qq); btn2.setOnClickListener(qq); btn3.setOnClickListener(qq); ... ... ... btnN.setOnClickListener(qq); private OnClickListener qq = new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub switch(v.getId()){ R.id.Btn1: break; R.id.Btn2: break; 以此类推 } } --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.130.55.241
1F:→ terrybob:推,学到新技术 02/13 15:29
2F:→ sweet00914:献丑了...0.0 02/13 15:30
3F:推 jakevin:因为我有20个按钮 这样写下去 不是很好维护 冏 02/13 15:36
4F:→ LaPass:我记得onClickListener会把点击的对象传进去,用那个抓按钮 02/13 15:51
5F:→ LaPass:就好 02/13 15:51
6F:→ LaPass:好像就是view,我不太确定..... 写android过後有点久了 02/13 15:53
7F:推 jakevin:我试着输出v.getID() 只能得到布林值?! 02/13 16:01
8F:→ LaPass:现在手上没有开发环境,你帮我试试看这个... 02/13 16:15
9F:→ LaPass:在onClick里加上: 02/13 16:15
10F:推 LaPass:if(v instanceof Butten) ((Butten)v).text = "用V抓到了"; 02/13 16:17
11F:→ LaPass:else log.d("无法抓到"); 02/13 16:18
12F:→ LaPass:Button才对 拼错字 = = 02/13 16:19
13F:→ LaPass:然後,看看会不会成功... 我记得可以这样 02/13 16:19
14F:→ sweet00914:String.valueOf(v.getId())<<<我显示的是数字字串唷 02/13 16:20
15F:→ LaPass:setText("用V抓到了"); 这样才对.... 02/13 16:21
16F:推 jakevin:成功了! 02/13 16:40
17F:推 gpc:好熟的ID 02/13 16:50
18F:推 jakevin:!!!! GPC大! 02/13 16:53
19F:→ Killercat:我实在...不是很鼓励用instanceof运算子 orz 02/13 17:36
20F:推 LaPass:那请问楼上是怎麽判断型别的? 尤其是在转型之前的防错 02/13 17:42
21F:→ Killercat:很简单,不要写出必须要用instanceof的东西 02/14 15:02
22F:→ Killercat:我承认这东西不是100%能避免,但是这往往多半都可以 02/14 15:03
23F:→ Killercat:从设计上来解决。就好像C++里面dynamic_cast往往是不被 02/14 15:04
24F:→ Killercat:鼓励的一样(但是很不幸的,不管怎麽设计其实或多或少 02/14 15:04
25F:→ Killercat:都会碰到那麽1%) 02/14 15:05
26F:→ Killercat:dynamic_cast的问题在於结构杂乱跟效能低下 而 02/14 15:05
27F:→ Killercat:instanceof会不会效能低下我不知道,不过结构多半会有 02/14 15:05
28F:→ Killercat:一些设计上的问题(多半,不是全部)造成维护困扰 02/14 15:06
29F:推 nvidia:用一次就罚五百元 02/14 19:38
30F:推 LaPass:唔.... java在objectstream中,就避免不了型别判断了..... 02/14 20:27
31F:→ LaPass:因为呼叫getobject,指会吐出object出来 02/14 20:28
32F:→ LaPass:那时我是用map<Class,SomeThing> 去处理掉..... 可能会有更 02/14 20:29
33F:→ LaPass:好的办法吧,但我不知道 02/14 20:29
34F:→ Killercat:不,简单的方法就是不要用objectstream传不同型别 02/16 18:55
35F:→ Killercat:ios写多了很多人有一种坏习惯(大概从js来的) 什麽都用 02/16 18:55
36F:→ Killercat:id去包,这个也id那个也id 结果每个都要测测看有没有 02/16 18:55
37F:→ Killercat:response才能丢event. 这根java的instanceof一模一样, 02/16 18:56
38F:→ Killercat:会造成维护上巨大的问题的 =P 02/16 18:56
39F:→ Killercat:outputstream那麽多 很少有什麽理由非得把一堆奇怪的 02/16 18:57
40F:→ Killercat:又不同型别的object得塞到「一个」objectoutputstream 02/16 18:57
41F:→ Killercat:的理由,几乎可以肯定一定是哪里有问题了 :Q 02/16 18:58
42F:→ Killercat:而且自己实作个output/input stream说真的很简单啊... 02/16 18:58
43F:→ iincho:我同意楼上的说法..XD 02/18 08:45
44F:→ iincho:基本上不要把不同的东西混用才是正确的做法... 02/18 08:45







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP