AndroidDev 板


LINE

※ 引述《jakevin (真。假凯文)》之铭言: : 版友们午安 : 不知道有没有人做过多个按钮群组的onClick事件 : 今天我的问题是 : [1] [2] [3]....[10] 共十个按钮 : 每个按钮执行一个相同的事件就是 按钮字改成"你好" : 我在main.xml 把每个按钮都加入了 android:onClick="myClickHandler" : 但现在问题来了 : 我要怎麽知道是哪一个按钮按下去的? : public void myClickHandler(View target) { : // Do stuff : } : 我可以从taget中得知是哪个按钮按下去的,但是我不知道该怎麽去对taget下指令 : 比方说 target.setText("你好"); : 想请问这该如何处理是好? : 谢谢大家 一行结束: ((Button)target).setText("你好"); 为什麽推文会用到switch、for、if 之类的呢.....? 顶多再加上一些防呆、防意外状况之类的就很多了 if(target instanceof Button) ((Button)target).setText("你好"); else /* 被点击的不是Button时所做的措施 */ 还有,判断物件型别,我只知道用instanceof,以及 Object.class 推文中有人推不要用instanceof 我很想知道为什麽,难道是有什麽代价或是BUG吗? 如果有别的方法,非常欢迎指教。 自己的经验是.... 要向下转型前要先判断 不然程式结构改了的话会很麻烦 总之,以後还是会很常用到型别判断就是了 ======================================================== 以下是解说: public void onClick(View v) { /* ............. */ } 里面传进来一个View,这个View到底是什麽东西呢? 我懒的讲,不知道的话,在用Eclipse时,把滑鼠移到onClick上面去 里面应该有一行: Parameters v The view that was clicked. 可能还是有人说.... 我又不知道View是什麽,怎麽知道该怎麽用? 总之,在你看到一个新的型别、介面、物件的时候 请养成一个习惯 滑鼠点一下Button (型别的字) 右键 => 快速类型阶层 如果连滑鼠右键都懒得按的话,可以在点一下那个字後,再按ctrl + T 接着会看到那个物件的继承图 Object > View > TextView > Button 这样一路继承下来的 这地方的观念可以去找Java关於物件导向的章节去看 请务必搞懂,这是Java的精随 (Button)target 这样子只是把target下向转型而已 把View转成Button之後,当然有.setText() 可以用 因为 setText() 是从TextView继承而来的 -- --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.233.152.130
1F:推 jakevin:感谢! 这篇厘清不少观念了 02/13 20:21
2F:推 nvidia:好人 02/13 21:38
3F:推 gpc:感人好文推一下 我都懒得打了QQ 02/13 23:06
4F:→ Eior:不用的说法:多型优於使用instanceof 02/14 00:16
5F:→ LaPass:了解了.... 只是,这边是overide,只能这样啊.... 02/14 00:20
6F:→ iincho:这是OO的基本观念吧...感觉上问问题的人Java要回去补一下 02/14 00:52
7F:→ iincho:至於用instatnceof...我的观念是不要把不同种物件放在 02/14 00:56
8F:→ iincho:同一组handler里面处理,直接切开就好, 所以都是直接cast. 02/14 00:56
9F:推 ah7675:推基本观念 不要用instanceof把多形给废了 02/14 02:34
10F:推 mamaya3:原来原po是要问casting啊 我会错意了 02/14 04:35







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灯, 水草

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

TOP