2013-07-17 68 views
1

正如标题所述,我正在寻找如何在按下另一个活动中的另一个按钮时动态创建按钮。这是通过Android SDK完成的。如何在android中动态创建另一个按钮

基本上,我有两个活动,MainActivity和SecondaryActivity,在SecondaryActivity中输入一些信息,标题,文本,ID等等。当你点击“保存”按钮时,它将一些信息发送给MainActivity(而不是问题)。除了发送信息外,我还需要在MainActivity中创建一个全新的按钮。

有关如何完成此任务的任何建议?

谢谢。

编辑1

public void CreateNewButton(View view) 
{ 

    LinearLayout lineLayout = (LinearLayout)findViewById(R.id.linear_layout); 
    TextView newTextView = new TextView(this); 
    int id = rand.nextInt(100); 
    int newId; 

    newTextView.setVisibility(View.VISIBLE); 
    newTextView.setId(R.id.new_button + id); 
    newTextView.setText("New Item"); 
    newTextView.setTextSize(35); 
    newTextView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      intent = new Intent(getBaseContext(), SecondActivity.class); 

      startActivity(intent); 

     } 
    }); 

    lineLayout.addView(newTextView); 
} 

此代码生成新的TextView(决定改变了),但现在的问题我有,是newTextView.setText();需要得到来自其他活动

newTextView.setText(i.getData().toString()); 

把这个在CreateNewButton(查看视图)方法会导致一个错误,因为技术上有在现场没有数据,它正试图从抢文本。

现在的问题是我需要创建新的TextView字段与尚未创建的新帐户的名称。如果那有意义的话。

+2

是否可以更改按钮的可见性,而不是动态添加呢? –

+0

是和否。问题是,当用户创建一个新帐户时,该按钮需要使用正确的名称创建。所以,在按下按钮后将可见性设置为true将会有效,但是需要为每个新帐户创建一个新按钮。 – ski6154

+0

哦,我明白了,所以它就像是一种不同的用户类型的登录。 –

回答

2

我会假设你想这个按钮添加到的LinearLayout:

LinearLayout linearLayout = (LinearLayout) findViewById(R.id.linearLayout1); 
Button button = new Button(this); 
button.setText("I'm a button!"); 
// add whatever other attributes you want to the button 
linearLayout.addView(button); 
+0

是的,这就是我想要做的,并且我在onCreate()方法中有精确的代码。但是,加载时它往往会崩溃。当我将该代码放入另一个方法(OnCreateNewButton())时,该按钮不会被创建。我有一个方法调用新的Activity,另一个方法创建按钮。 – ski6154

+1

当您的应用程序崩溃时,LogCat会说什么? –

+0

java.lang.IllegalStateException:无法执行活动的方法 是我点击按钮时在方法中执行的第二个活动(startActivity(intent))时,我得到的实际按钮创建它。 – ski6154

相关问题