Button.setOnClickListener(this)问题

gebi0107 2017-08-16 04:47:26
在一个listview里添加了三个Button
如果用下面的写法:
Button btn01 = (Button) findViewById(R.id.btn01);
Button btn02 = (Button) findViewById(R.id.btn01);
Button btn03 = (Button) findViewById(R.id.btn01);
btn01.setOnClickListener(this);
btn02.setOnClickListener(this);
btn03.setOnClickListener(this);


public void onClick(View view){
switch(view.getId()) {
case R.id.btn01:
........
break;
case R.id.btn02:
.......
break;
case R.id.btn03:
........
break;
}
}
点击按钮btn01正常,点击btn02、btn03没反应


如果用另一种写法:
findViewById(R.id.btn01).setOnClickListener(this);
findViewById(R.id.btn02).setOnClickListener(this);
findViewById(R.id.btn03).setOnClickListener(this);
则正常
这是为什么啊

另外传入的this是MainActivity还是Button
...全文
1473 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuguangwu123 2017-08-16
  • 打赏
  • 举报
回复
传入的当然是main的
gebi0107 2017-08-16
  • 打赏
  • 举报
回复
引用 2 楼 qq_34364155 的回复:
this是 OnClickListener
MainActivity 和 Button 都实现了 OnClickListener接口 这里传入的this是哪个 我查了下资料判断了下应该是MainActivity 不知道对不对 原理也不是很明白 还有实现的onClick(View view)里面的view是从哪里得到的
gebi0107 2017-08-16
  • 打赏
  • 举报
回复 1
引用 1 楼 Heatherhh 的回复:
Button btn01 = (Button) findViewById(R.id.btn01); Button btn02 = (Button) findViewById(R.id.btn01); Button btn03 = (Button) findViewById(R.id.btn01); 你全写的R.id.btn01,当然没反应啦
我晕 犯了这么低级的错误
寒冰大神 2017-08-16
  • 打赏
  • 举报
回复
this是 OnClickListener
Heatherhh 2017-08-16
  • 打赏
  • 举报
回复 4
Button btn01 = (Button) findViewById(R.id.btn01); Button btn02 = (Button) findViewById(R.id.btn01); Button btn03 = (Button) findViewById(R.id.btn01); 你全写的R.id.btn01,当然没反应啦

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧