2017-03-23 62 views
1

問題可能看起來不清楚,我需要根據選定的微調器選項創建EditTexts。例如:如何根據微調器選項創建EditText字段?

微調:

<Spinner 
     android:id="@+id/spn_options" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:entries="@array/spinner_options" 
     /> 

微調選項:

<string-array name="spinner_options"> 
    <item>One </item> 
    <item>Two </item> 
    <item>Three </item> 
    <item>Four </item> 
</string-array> 

活動:

spnOptions.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
     String chosenOption = (String) parent.getItemAtPosition(position); 

     } 
     @Override 
     public void onNothingSelected(AdapterView<?> parent) {} 
    }); 

我有這個微調4個選項,如果用戶選擇3,3 EditText將出現在微調下。我試圖創建4個EditText並將它們設置爲不可見,並根據選擇使它們可見,但它在性能方面似乎是一個可怕的想法。任何人有另一個想法。

+0

爲什麼不只是使用1'EditText'字段並根據選定的微調項目操縱數據? –

+0

@ mark.jon事情是每個edittext字段代表不同的人,所以創建一個不是一個選項 –

回答

3

使用visibility="GONE"在xml佈局中創建四個EditText。然後取決於微調選項更改可見性可見使用setVisibility()

+0

正如我在我的問題中提到的,我已經試過這個解決方案,但有沒有其他方式? –

+1

這是最簡單的。您可以根據您選擇的微調器值以編程方式生成EditText,然後必須刪除並再次添加onItemSelected。 – tahsinRupam

+0

這應該工作沒有明顯的滯後,也許你的性能問題在別處 –

相關問題