添加和删​​除动态按钮从一个活动到另一个活动在android中单击按钮从上一个活动按钮单击

时间:2013-06-12 08:49:26

标签: android android-layout android-intent android-widget android-button

我想开发一种类似的应用程序(链接如下) 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);    

 }        

活动未转移到第二个活动,程序正在终止。 我可以在同一活动中创建新按钮。 请帮助。

2 个答案:

答案 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);
       }