我想开发一种类似的应用程序(链接如下) How to create Button Dynamically in android? 但与此同时,我想在另一个活动中显示这个,而不是在同一个活动中。 有2个编辑文字: 1)要创建的按钮名称。 2)目的地地址(用于创建新按钮时发送的消息)。 其文本将传递给另一个活动以创建新按钮。
我写的时候
public void onClick(View v) {
// TODO Auto-generated method stub
final Context context1=this;
if(v.getId()==R.id.button4){
LinearLayout l1 = (LinearLayout) findViewById(R.id.layout);
// R.id.layout is the layout id of the xml file for the 2nd activity.
Intent intent1 = new Intent(context1,PCode.class);
Button b = new Button(this);
l1.addView(b);
startActivity(intent1);
}
活动未转移到第二个活动,程序正在终止。 我可以在同一活动中创建新按钮。 请帮助。
答案 0 :(得分:0)
在第一个活动的onClick中使用Intent发送数据:
intent = new Intent(this, PCode.class);
intent.putExtra("EXTRA_BTN_NAME", editText.getText());
intent.putExtra("EXTRA_WHERE", where);
startActivity(intent);
在新活动中,您应该使用
获取数据 @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activty2);
Intent intent = getIntent();
String btnName = intent.getStringExtra("EXTRA_BTN_NAME");
where= intent.getStringExtra("EXTRA_WHERE");
LinearLayout l1 = (LinearLayout) findViewById(R.id.layout);
Intent intent1 = new Intent(context1,PCode.class);
Button b = new Button(this);
b.SetText(btnName);
//TODO - use the "where" parameter
l1.addView(b);
答案 1 :(得分:0)
您可以为每个按钮通过意图传递总共3条消息1)要创建的按钮名称。 2)目的地地址(用于创建新按钮时发送的消息)。 3)按钮操作(添加/删除) 在新活动中,您使用我们的第三个意图消息处理按钮操作,即按钮操作(添加/删除)他们想要执行的操作。在新活动中,您可以使用以下代码处理
boolean isAddButton = getIntent().getBooleanExtra("ButtonAction", false);
if(isAddButton){
Button myButton = new Button(this);
myButton.setText("Add Me");
LinearLayout ll = (LinearLayout)findViewById(R.id.buttonlayout);
LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
ll.addView(myButton, lp);
}else{
Button myButton = new Button(this);
myButton.setText("Remove Me");
LinearLayout ll = (LinearLayout)findViewById(R.id.buttonlayout);
LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
ll.removeView(myButton, lp);
}