我通过代码而不是 XML 动态创建按钮。
代码如下:
dynamicview = (LinearLayout)findViewById(R.id.llayout);
LinearLayout.LayoutParams lprams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
for(int i=0;i<nob;i++){
Button btn = new Button(this);
btn.setId(i+1);
btn.setText("Button"+(i+1));
btn.setLayoutParams(lprams);
dynamicview.addView(btn);
}
我没有找到一种方法可以对每个按钮实现 OnClickListener,以便我可以根据获得的引用执行操作。
谁能帮我解决这个问题。 ?
提前致谢,
最佳答案
请看下面的代码:
for(int i=0;i<nob;i++) {
Button btn = new Button(this);
btn.setId(i+1);
btn.setText("Button"+(i+1));
btn.setLayoutParams(lprams);
final int index = i;
btn.setOnClickListener(new OnClickListener() {
void onClick(View v) {
Log.i("TAG", "The index is" + index);
}
});
dynamicview.addView(btn);
}
我的示例非常简单,但演示了如何将按钮索引获取到 OnClickListeber
中。您可以访问声明的匿名类中的任何 final
字段(例如 OnClickListener
)。
关于android - 在 Android 中为动态创建的按钮实现 OnClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10673628/