我有一个初始化方法,它使用 findViewById(R.id.pin1) 找到每个按钮,然后设置一个 onclick 方法,该方法将方法写入蓝牙输出流。
Button myButton = (Button) findViewById(R.id.pin1);
myButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String msg = "1".toString();
try {
mmOutStream.write(msg.getBytes());
} catch (IOException e) {
error();
}
}
});
从字面上看,我所做的只是将 1 更改为 2,依此类推。所以下一个代码段是:
Button myButton = (Button) findViewById(R.id.pin2);
myButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String msg = "2".toString();
try {
mmOutStream.write(msg.getBytes());
} catch (IOException e) {
error();
}
}
});
我尝试了一些方法,比如制作一个像 string pinButton = "pin"+ i.toString() 这样的字符串,然后是 R.id.pinButton,但它不起作用。 (也就是说,我在一个 forloop 中,我用它包围了代码)
最佳答案
是的,您可以切换
按钮id
并为每个按钮
调用相同的onClick()
在 xml 中
然后,您只需根据单击的 id
更改 msg
变量
@Override
public void myClick(View v) {
String msg = "";
switch (v.getId())
{
case (R.id.button1):
msg = "1";
break;
case (R.id.button2):
msg = "2";
break
}
try {
mmOutStream.write(msg.getBytes());
} catch (IOException e) {
error();
}
}
});
要在 xml 中设置 onClick()
,只需对每个 Button
执行此操作即可
<Button
...
android:onClick="myClick"/> // name this whatever you want the method to be called and do the same for each Button
此外,您不需要在 msg
上调用 toString()
,因为它已经是一个 String
关于android - 有没有一种使用for循环初始化编号为1-10的多个按钮的快速方法? (安卓应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16350168/