我想制作两个微调器,第一个微调器包含州列表,第二个微调器包含城市列表。如果我从第一个微调器中选择特定的州,那么下一个微调器必须只显示所选州的城市。
我的安卓代码
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Spinner state = (Spinner) findViewById(R.id.spinnerState);
ArrayAdapter<CharSequence> stateadapter = ArrayAdapter.createFromResource(
this, R.array.item_state, android.R.layout.simple_spinner_item);
stateadapter.setDropDownViewResource(R.layout.spinner_layout);
state.setAdapter(stateadapter);
Spinner city = (Spinner) findViewById(R.id.spinnerCity);
ArrayAdapter<CharSequence> cityadapter = ArrayAdapter.createFromResource(
this, R.array.item_city, android.R.layout.simple_spinner_item);
cityadapter.setDropDownViewResource(R.layout.spinner_layout);
city.setAdapter(cityadapter);
}}
我为州和城市创造了我的一切。
最佳答案
有很多方法可以实现这一点,例如:
ArrayAdapter<CharSequence> stateadapter;
switch(state)
{
case "Florida":
{
stateadapter = ArrayAdapter.createFromResource(this, R.array.cities_florida, android.R.layout.simple_spinner_item);
} break;
}
(有点硬编码)
最佳解决方案是在 xml 文件上定义它(也许您可以在互联网上的某个地方找到它)并编写一个类来读取该文件并返回所选州的所有城市。
阅读: https://developer.android.com/training/basics/network-ops/xml.html
关于android - 根据条件对 Spinner 中的值进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38319175/