2013-07-17 92 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

相關問題