AndroidDev 板


LINE

※ 引述《CPU100 (小丑)》之铭言: : 之前完全没接触过JAVA 更别提开发Android程式了 : 目前老板突然丢一只Android的程式过来,实在有看没懂,希望版上前辈指导 : 以下是在看程式遇到的问题 : 在layout的XML里,同样是button ,有一个有使用onClick这个事件,一个没有none : 但两个按钮点击都有功能的 同样的事件可以有多种表示方法 以下这种是写至在 xml (不推荐 : 1.这是有使用onClick : public void btn_onClick (View view) { : Intent intent = new Intent(this, Main3Activity.class); : startActivity(intent); : MainActivity.this.finish(); 这样代表着在程式内宣告了一个 btn_onClick 方法 并且你可以在 xml 内看到以下的写法 <Button android:onClick="btn_onClick" android:text="push me" android:layout_width="wrap_content" android:layout_height="wrap_content" /> 以下这种是写在程式内(较常见 : 2.这是没有使用onClick : registered.setOnClickListener(new View.OnClickListener() { : @Override : public void onClick(View v) { : Intent intent = new Intent(Main2Activity.this, : registeredpage.class); : startActivity(intent); : Main2Activity.this.finish(); 第二种写法代表着他是用匿名类别的物件来实作的 可以参考良葛格的文章 https://openhome.cc/Gossip/Java/AnonymousInnerClass.html 也可以参考我之前写过的一篇文章的解释 https://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1326163107.A.BDA.html : 请问这两种方式,什麽情况下使用呢? : 如果我想把第一个有使用onClick的按钮改用第二种写法,该怎麽改呢? : 谢谢!! 如果要改成第二种写法 首先要在 xml 内将该 Button 设定一个 id 并且在主程式内透过 Button btn = (Button) findViewById(R.id.your_id); btn.setOnClickListener(new OnClickListener(){ public void onClick(View v) { // do something } }); 这样就可以完成一个事件的宣告了 比较不推荐第一种的写法 因为在 code review 的时候不好追踪 大部分的情况之下是会采取第二种的写法 除了可以共用 Listener 以外 可读性也比较高 对於 Button 的运作也可以参考一下拙作 http://givemepass.blogspot.tw/2016/11/button.html 虽然你是临时被老板叫去写 Java 如果未来还是要开发 Android 建议是从 Java 的基础观念学起 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.72.169.199
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1496643553.A.140.html ※ 编辑: givemepass (42.72.169.199), 06/05/2017 14:24:16
1F:推 Liulian: 推认真回文XD 06/05 14:25
2F:推 sofasoso: 推givemepass大大 06/05 14:44
3F:→ ssccg: 两种写法都可以共用listener吧 06/05 16:43
4F:→ gcobc12632: 问一下关於第一种跟第二种写法对於效能有影响吗? 06/05 18:46
5F:→ ssccg: 第一种是用reflection呼叫实际方法,理论上比较慢 06/05 20:36
6F:→ ssccg: 不过一个UI事件只用一次,差距是在nanosecond等级的,其实 06/05 20:45
7F:→ ssccg: 没什麽影响 06/05 20:45
8F:推 sean0430: 还有一种是用class实作listener的写法XD 06/07 21:53







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

请输入看板名称,例如:Boy-Girl站内搜寻

TOP