2016-08-15 52 views
0

我在Android中開發了一個健康應用程序,並且我有一個活動,其中第一個問題是是/否回答(我使用2個複選框),具體取決於是/否回答該活動顯示要完成的EditText。我真的知道如何隱藏EditText以及如何在用戶點擊複選框時顯示,但問題是如果存在正確的設計模式來執行此操作?我讀了Material Desing web,但我沒有發現這件事。這是正確的方法嗎?或者我必須啓用/禁用EditTexts在Android中,正確的設計模式如何隱藏/顯示EditText?

+0

'android:visibility =「invisible」'和'visible'需要時。也可以通過編程來設置它。 – Vucko

回答

0

如果你只需要設置一些EditText的,你的方式是正確的。

選項A

試想一下, 「富()」 的回報是,你必須顯示的EditText。

在您的佈局:現在

<EditText 
android:id="@+id/edit1" 
android:visibility="GONE" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"/> 

<EditText 
android:id="@+id/edit2" 
android:visibility="GONE" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"/> 

.... 

,在你的代碼:

... 
switch(foo()){ 
    case 1: //You have to show the first EditText 
    EditText edit1 = (EditText)findViewById(R.id.edit1); 
    edit1.setVisibility(View.VISIBLE); 
    break; 
    case 2: //You have to show the second EditText 
    EditText edit2 = (EditText)findViewById(R.id.edit2); 
    edit2.setVisibility(View.VISIBLE); 
    break; 
    .... 
} 

選項B

另一種選擇是編程添加EditText上,是這樣的:

EditText editText = new EditText(context); // Pass it an Activity or Context 
editText.setLayoutParams(new LayoutParams(..., ...)); // Pass two args; must be LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, or an integer pixel value. 
myLayout.addView(editText); 

在這種情況下,你不需要添加的EditText在佈局文件,你要動態地只有當你需要它添加了!

Generating Edit Text Programatically in android

希望它能幫助!

+0

謝謝,也許我的問題是一個litlee困惑,我已經知道如何做到這一點。問題是如果這個方法在android的設計中是正確的。 –

+0

正如我在我的回答中所說的,如果你只有幾個EditText的話,那是對的。但是如果您想控制更具體的情況,請檢查更有效的選項B. –

相關問題