2011-09-27 50 views
4

我有兩個微調器。國家和城市。 我想在選擇國家時動態更改城市的價值。 我知道如何創建和初始化國家的價值,但不知道如何設置和更改城市的價值觀。如何動態更改微調器的項目

任何指導表示讚賞。

UPDATES1 問題是,我不知道如何更新City Spinner的內容。我知道如何創建一個固定的微調器的監聽器和其他基礎知識。

+0

我想Spinner.getAdapter的(),然後使用明確()刪除現有項目然後。新增()來添加新的項目。但不幸的是,找不到這兩種方法。看起來很奇怪,因爲我使用的是ArrayAdapter。它應該有add()和clear() - > http://developer.android.com/reference/android/widget/ArrayAdapter.html#add%28T%29 – eros

回答

5

對於第二個微調框,使用適配器覆蓋List<String>(或任何城市表示)。更改列表的內容後,請在適配器上撥打notifyDataSetChanged,然後執行。

+0

你會教我如何使用notifyDataSetChanged嗎? – eros

+1

@eros:當然,'adapter.notifyDataSetChanged();' –

+0

「通知附加的View,底層數據已被更改,並且應該自行刷新。」 < - 1)其自動刷新? 2)是否需要將我的適配器聲明爲Activity實例變量? – eros

3

你需要一個綱領性參考飛旋,像這樣:

 Spinner spinner = (Spinner) findViewById(R.id.spinner); 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
      this, R.array.planets_array, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 

然後更新您所在城市的價值,使用OnItemSelectedListener,像這樣:

public class MyOnItemSelectedListener implements OnItemSelectedListener { 

    public void onItemSelected(AdapterView<?> parent, 
     View view, int pos, long id) { 
      //update content of your city spinner using the value at index, 
      // id, or the view of the selected country. 
     } 
    } 

    public void onNothingSelected(AdapterView parent) { 
    // Do nothing. 
    } 

}

最後,您需要將偵聽器綁定到這樣的國家/地區微調器:

spinner.setOnItemSelectedListener(new MyOnItemSelectedListener()); 

看到這裏供參考:http://developer.android.com/resources/tutorials/views/hello-spinner.html

+2

你會分享如何更新你的城市微調的內容? – eros