2010-10-21 128 views

回答

3

我相信你可以用OnItemSelectedListener解決這個問題。

public void onCreate() { 
    .... 
    Country[] mCountries = ... ; 
    final Spinner spinner1 = ...; 
    final Spinner spinner2 = ...; 

    spinner1.setAdapter(new ArrayAdapter(mCountries); 
    spinner1.setOnItemSelectedListener(new OnItemSelectedListener() { 

    void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
     Country country = (Country) parent.getAdapter().getItem(position); 
     spinner2.setAdapter(new ArrayAdapter(country.getStates()); 
    } 
    void onNothingSelected(AdapterView<?> parent) { 
     spinner2.setAdapter(null); 
    } 
    }); 
.... 
} 
+0

感謝Greg的幫助。但是,如果微調器的數量持續增長,那該怎麼辦?例如,如果我們選擇狀態,那麼我們應該爲區域等另一個微調。 – Ranjeet 2010-10-21 10:05:24

+0

嗨Ranjeet,你可能只需要使用一個spinners列表並在循環中應用相同的算法。該列表應該由大多數一般的微調者訂購,以確定最具體的。或者你甚至可以創建新的微調控制器並將其添加到選中的監聽器中的視圖層次結構中。 – 2010-10-21 15:53:04

+0

再次感謝格雷格。這是我正在尋找的。請再提供一個幫助。我們能否擁有超過1個與Spinner相關的價值。例如我們可以讓Spinner擁有國家和國家代碼作爲它的ID。這就像我們普通的html方式。 – Ranjeet 2010-10-22 08:51:34

相關問題