2010-10-21 127 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

相关问题