问题
I want to add multiple buttons dynamically through the code on button click, I searched many previous posts which shows to add single button, but I need multiple ones.
Attached is the sample code.
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button b1 = (Button)findViewById(R.id.button1);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AddAll();
}
});
}
public void AddAll() {
final RelativeLayout rl = (RelativeLayout)findViewById(R.id.rel);
final Button btn = new Button(this);
for(int i=0;i<4;i++)
{
rl.addView(btn);
btn.setText("hello");
btn.setWidth(320);
btn.setHeight(40);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
Please help regarding the same. However adding single button is working fine, but I need to add many buttons one below the other.
回答1:
public void AddAll() {
final RelativeLayout rl = (RelativeLayout)findViewById(R.id.rel);
for(int i=0;i<4;i++)
{
final Button btn = new Button(this);
rl.addView(btn);
btn.setText("hello");
btn.setWidth(320);
btn.setHeight(40);
}
//////////////////////////////////////////////////////////
}
For more detail :-
How do I programmatically add buttons into layout one by one in several lines?
or
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ScrollView scrollView= new ScrollView(this);
LinearLayout mainLayout = new LinearLayout(this);
mainLayout.setOrientation(LinearLayout.VERTICAL);
for (int i=0; i<10; i++){
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.HORIZONTAL);
ll.setTag(i);
TextView tv=new TextView(this);
tv.setText("Row " + i);
ll.addView(tv);
Button b = new Button(this);
b.setTag(i);
b.setText("Button " + i);
ll.addView(b);
mainLayout.addView(ll);
}
scrollView.addView(mainLayout);
setContentView(scrollView);
}
回答2:
public void AddAll() {
LinearLayout layout = (LinearLayout) findViewById(R.id.linear);
layout.setOrientation(LinearLayout.HORIZONTAL);
for (int j = 0; j < 4; j++ ){
Button btnTag = new Button(this);
btnTag.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
btnTag.setText("Button " + j);
layout.addView(btnTag);
}
}
来源:https://stackoverflow.com/questions/15358939/adding-multiple-buttons-on-the-fly