场景:我在xml中定义了三个按钮
<button android:id="@+id/firstbtn"
...
/>
<button android:id="@+id/secbtn"
...
/>
<button android:id="@+id/thirdbtn"
...
/>
In Java one way to listen to them is
Button firstbtn = (Button) findViewById(R.id.firstbtn);
firstbtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(getBaseContext(),
"You have clicked first button",
Toast.LENGTH_SHORT).show();
}
});
对于第二个btn,相同的代码必须以不同的id重复?
我怎样才能使它足够通用,它可以听取所有按钮(比如for循环),在处理时我应该能够区分不同的btns . (可能是获取元素ID)
4 回答
我宁愿使用
onClick="methodName"
xml属性而不是一大堆findViewById
调用 . 例如:在显示布局的活动中,只需添加一个方法
您还可以将onClick和clickable属性放入res / styles.xml文件以节省更多输入:
然后将您的布局简化为
您无需为所有人重复相同的代码 . 您可以尝试使用通用侦听器,例如:
然后,您只需注册所有三个按钮即可使用此mCorkyListener . 也就是说,在onCreate()里面,
查看here代码示例 . 你必须使用
findViewById
来"find"你的按钮 .您只需按照以下步骤轻松实现......
您不必为每个按钮编写新的onClickListener ...只需将View.OnClickLister实现到您的Activity / Fragment ..它将实现名为onClick()的新方法,用于处理Button,TextView等的onClick事件 .
1 - 在Activity / Fragment中实现OnClickListener()
2 - 在Activity / Fragment中实现onClick()方法
3-Implement OnClickListener()用于按钮
4 - 按ID查找按钮并实施您的代码