我在Android上编程。我动态创建一个按钮(即在运行时不使用布局)。现在我需要从动态创建的按钮调用一个动作。这可能吗?
我已使用以下代码动态创建按钮。
Button btnNew = new Button(this);
String text = etName.getText().toString();
btnNew.setText(text);
llMain.addView(btnNew, lParams);

现在我需要使用btnNew
感谢所有帮助。 感谢。
答案 0 :(得分:0)
您可以通过设置侦听器
在该特定按钮上执行多个事件btnNew.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
}
});
答案 1 :(得分:0)
尝试使用以下代码
Button btnNew = new Button(this);
btnNew.setId(111);
btnNew.setOnClickListener(this);
Button btn2 = new Button(this);
btn2.setId(222);
btn2.setOnClickListener(this);
you can implement onclick listener in your activity
在onclick视图中,您可以检查下面的ID
@Override
public void onClick(View v) {
switch (v.getId()) {
case 111:
//do some thing here
break;
case 222:
//do some thing here
break;
}
};
答案 2 :(得分:0)
您可以使用“OnClickListener”
对按钮执行多项操作btnNew.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//action here .. which you want to perform
}
});
答案 3 :(得分:0)
您可以使用以下代码:
Button dynamicBtn = new Button(this); // or new Button(getActivity());
dynamicBtn.setTag(100);
dynamicBtn.setOnClickListener(this);
// Override below in fragment or activity that implements
// 'View.OnClickListener'
@Override
public void onClick(View v) {
switch ((Integer)v.getTag()) {
case 100:
//do something
break;
default:
break;
}
};
答案 4 :(得分:0)
Button dynamicButton = new Button(this);
dynamicButton.setTag(new ButtonTag(100, new ButtonTag.Callback() {
@Override
public void run() {
// run anything here
}
}));
@Override
public void onClick(View view) {
ButtonTag tag = (ButtonTag)view.getTag();
tag.execute();
// simpler ((ButtonTag)view.getTag()).execute();
}
// don't think you need id anymore
public static class ButtonTag{
private Callback callback;
private int id;
public ButtonTag(int id, Callback callback){
this.callback = callback;
this.id = id;
}
public void execute(){
callback.run();
}
public interface Callback{
public void run();
}
}