我的布局中有25个按钮。了解单击哪个按钮或获取其ID的有效方法是什么?
提前致谢..
答案 0 :(得分:1)
Button实现View.OnClickListener,它接收已单击的视图。您可以按以下方式获取ID ...
@Override
public void onClick(View view) {
int Id = view.getId();
}
答案 1 :(得分:0)
根据Android documentation for an Activity,查找视图的唯一方法是通过findViewById。如果您想在设置具有特定ID的按钮时执行某些操作,则必须单独为每个按钮添加onClickListeners。
答案 2 :(得分:0)
我不知道问题在哪里
布局xml中的为每个按钮添加onClick =“onClick”,然后在活动广告功能
中public void onClick(View v) {
switch(v.getId()){
case R.id.Button1:
break;
case R.id.Button2:
break;
case R.id.Button3:
break;
//....
}
}
编辑(因为我无法向其他人添加奖励回答: @Zach Rattner
根据这个http://developer.android.com/reference/android/widget/Button.html Zach,你错了
然而,而不是申请 OnClickListener到你的按钮 活动,您可以指定方法 使用的XML布局中的按钮 android:onClick属性
答案 3 :(得分:0)
这样的事情应该有效:
Button button1 = (Button)findViewById(R.id.Button01);
Button button2 = (Button)findViewById(R.id.Button02);
private class myListener implements OnClickListener
{
@Override
public void onClick(View arg0) {
if (arg0 == button1)
{
//button 1 clicked
}
else if (arg0 == button2)
{
//button 2 clicked
}
//etc
}
}
myListener listener = new myListener();
button1.setOnClickListener(listener);
button2.setOnClickListener(listener);
答案 4 :(得分:0)
执行此操作的标准方法是在XML布局文件中声明每个具有唯一 id 的按钮,如下所示:
<Button android:id="@+id/my_button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/my_button_text"/>
请注意,您必须为每个按钮执行此操作。
接下来,您可以使用以下代码作为按钮侦听器:
final Button button1 = (Button) findViewById(R.id.my_button1);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
}
});
这将是低效的,因为你将创建25个新的View.OnClickListener
对象(每个按钮一个),并且由于你是针对内存受限设备的Android编程,所以最好创建一个一个监听器并将其分配给每个按钮,然后检查View v
对应的按钮。
我希望你不要在一个屏幕上放25个按钮。如果是,您可能想重新考虑您的设计。