我试图通过动态创建一个按钮,我也创建了。现在我想编写单击事件的函数所以我需要Button的ID。我不知道如何为按钮动态创建id.Guide me 提前致谢 在这里我的编码
ScrollView sv = new ScrollView(this);
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.HORIZONTAL);
sv.addView(ll);
Button main=new Button(this);
CharSequence value="Main +";
main.setText(value);
ll.addView(main);
}
this.setContentView(sv);
}
答案 0 :(得分:4)
您可以通过
设置任何控件的IDbtn.setId(integer value) at runtime.
如果您不想设置ID,则没有问题
另外,当您创建新视图时,您必须设置其layout parameters(Height, Width)
例如
btn.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
所以整个过程就像
Button btn = new Button(Context);
btn.setId(1);
btn.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
btn.setText("Dynamic button");
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(v.getContext(),"Dynamic button is clicked", 3000).show();
}
});
答案 1 :(得分:2)
试试这段代码。
Button text = new Button(this);
text.setId(1);
text.setText("text here");
ll.addView(text);
text.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
int id = arg0.getId(); // you get ID of your dynamic button
Toast.makeText(getApplicationContext(), "Dynamic textview!", Toast.LENGTH_SHORT).show();
}
});
在那个“ll”中是一个布局和那个添加按钮。 之后,您可以随时使用clickListener代码单击执行。
答案 2 :(得分:0)
你可以简单地使用这个
Button main= new Button(this);
main.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
并且main.setId(pass here int value);
设置了ID,但我认为你不需要它