2014-03-13 49 views
-3

我有一個佈局(activity_main.xml),它有一些TextView和EditText元素和一個按鈕。 當點擊按鈕時,我會發生一些事情,但是我想在點擊按鈕之後直接在下面添加一個新的EditText元素,並添加現有元素。在button按鈕上添加editText

請問我該如何做到這一點?

+0

'詢問代碼的問題必須證明對所解決問題的最小理解。包括嘗試解決方案,爲什麼他們不工作,以及預期的結果。' –

+0

不是一個好問題,顯示你的努力。 – tianwei

+0

我已經嘗試了代碼示例中的各種選項,但找不到它們的功能。我不確定我可以展示哪些代碼,因爲我嘗試過各種選擇而沒有成功。 在幾種情況下,代碼會編譯,但是在執行時什麼都不會發生。 我是一位經驗豐富的編碼員,但仍然在學習Java的android。對不起,我沒有更多的你。 我所做的大部分工作都是徒手,我希望能夠學習如何簡化我的代碼。 – user3120872

回答

1

通常我只是玩弄元素的可見性。例如:

上的OnCreate:EditText1.setVisibility(GONE);

,然後在你的OnClickListener實現:

private OnClickListener onShow = new OnClickListener() { 
    public void onClick(View v) { 
     EditText1.setVisibility(VISIBLE); 
    } 
} 

這將隱藏您的EditText(或其他元素,你想要的)在創建活動中,再展他們再次按下按鈕時。

上面提到的方法比較容易,對於我的大部分項目來說似乎都足夠了。但是,如果我們真的想要動態添加元素,則有一種方法。

我們基本上可以將任何元素動態添加到我們的xml佈局中。但是我們需要一個元素(容器)在我們的xml佈局中,以便稍後保存我們添加的元素。例如,我們使用一個空的LinearLayout與android:id =「@ + id/container」。考慮到這一點,這意味着我們可以從頭開始動態構建一切,setContentView(ourView),其中ourView是添加了其他子元素的根元素。

例子:

EditText newElement = new EditText(this); 
newElement.setLayoutParams(params); 
LinearLayout container = (LinearLayout)findViewById(R.id.container); 
container.addView(newElement); 

注:這只是一個僞代碼,而不是一個完整的代碼。

+0

謝謝你。我會考慮這個選項,但我真的很希望根據需要動態地添加新的字段。 – user3120872

+0

嘗試檢查我編輯的答案,我添加了第二個選項,如何動態添加元素。也許它可以幫助:) – Milanor

+0

乾杯感謝您的幫助。非常感激。 – user3120872