安卓 2.3.3
我有一个 N 行 N 列的表。对于每一行,我应该动态添加 4 个按钮,然后根据单击的按钮执行操作。我知道我们可以使用整数值设置按钮 ID button.setID()
,但我想知道我们是否可以将 ID 设置为我们在 XML 文件中设置的字符串值,例如btnXYZ1
等btnXYZ2
,
您可以为此目的使用标签。例如
btn.setTag("btXYZ");
for (int i=0;i<nob;i++) {
Button btn = new Button(this);
btn.setId(i+1);
btn.setText("Button"+(i+1));
btn.setOnClickListener(btnclick); <<<<<<<set click
btn.setLayoutParams(lprams);
dynamicview.addView(btn);
}
并将此侦听器添加到任何方法之外和类内部
OnClickListener btnclick = new OnClickListener() {
@Override
public void onClick(View view) {
switch(view.getId()) {
case 1:
//first button click
break;
//Second button click
case 2:
break;
case 3:
//third button click
break;
case 4:
//fourth button click
break;
.
.
.
default:
break;
}
}
};
您在 XML 文件中使用的字符串对应于 R.java 中的 int,因此实际上是 int。setId() 方法只接受一个 int 值作为参数。您可以在常量文件中定义您的 ID,例如:
public class Ids {
public static final int ID_ONE = 1;
}
然后将其用作:
button.setId(Ids.ID_ONE);
不,您不能将其设置为String
,id 是int
值,即使您从中设置它XML
只是int
值的资源名称
不,您不能将其设置为 String,id 是 int 值,即使您从 XML 设置它也只是 int 值的资源名称
如果您仍然有对视图的引用,则可以简单地将它们全部保存到 HashMap 中,例如使用 HashMap。
为了避免任何拼写错误,另一种选择是使用枚举作为 hashMap 的键,例如:HashMap。