2017-03-25 192 views
0

我的要求是基於第一個微調器的選擇來填充第二個微調器。我的問題是:是否有可能具有節點結構的XML文件?例如這樣的事情:Android微調器:根據第一個選擇填充第二個微調器

<Europe> 
<State name="France"> 
    <city name="Paris"/> 
    <city name="Lyon"/> 
    <city name="Nice"/> 
</State> 
<State name="Spain"> 
    <city name="Madrid"/> 
    <city name="Barcelona"/> 
    <city name="Valencia"/> 
</State> 
<State name="Germany"> 
    <city name="Berlin"/> 
    <city name="Frankfurt"/> 
    <city name="Monaco"/> 
</State> 
</Europe> 

如何做到這一點?請幫幫我。感謝

+0

提示:是其可能的,,,只是解析這個XML文件並把它的ArrayList並將其設置爲第二次紡織呃 –

+0

謝謝薩米爾..解析XML後,我將在第一個微調狀態名稱,並在第二個相關城市鏈接到選定的國家?這個怎麼做? –

回答

0

您可以設置onItemSelectedListener和更新基礎上的價值觀第二微調的適配器內容的選擇,例如:

Spinner spinner = (Spinner) findViewById(R.id.spinner); 
spinner.setOnItemSelectedListener(this); 
Spinner spinner2 = (Spinner) findViewById(R.id.spinner2); 

//setup initial adapters etc. 

public void onItemSelected(AdapterView<?> parent, View view, 
      int pos, long id) { 
     //based on the selected item update the second spinner: 
ArrayAdapter<CharSequence> adapter ArrayAdapter.createFromResource(this, 
     R.array.planets_array, android.R.layout.simple_spinner_item); 

// Apply the adapter to the spinner 
spinner2.setAdapter(adapter); 
    } 

您也可以爲您的微調2自定義適配器與updateItems (列表項)方法照顧的項目變化,例如該方法看起來是這樣的:

public void updateItems(List<String> items){ 
     currentItems.clear(); 
     currentItems.addAll(items); 
    notifyDatasetChanged(); 
} 
相關問題