use*_*092 11 android android-widget android-layout
我通过代码而不是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);
}
Run Code Online (Sandbox Code Playgroud)
我没有找到一种方法可以为每个按钮实现OnClickListener,以便我可以根据我得到的引用执行操作.
任何人都可以帮我解决这个问题.?
提前致谢,
Bor*_*jev 29
请参阅以下代码:
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);
}
Run Code Online (Sandbox Code Playgroud)
我的例子很简单,但演示了如何将按钮索引放入OnClickListeber.您可以访问final声明的匿名类中的任何字段(例如OnClickListener).
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);
}
Run Code Online (Sandbox Code Playgroud)
并在任何方法和类内部添加此列表器
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;
}
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31229 次 |
| 最近记录: |