android - 根据条件对 Spinner 中的值进行排序

标签 android arrays sorting android-spinner

我想制作两个微调器,第一个微调器包含州列表,第二个微调器包含城市列表。如果我从第一个微调器中选择特定的州,那么下一个微调器必须只显示所选州的城市。

我的安卓代码

@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/

相关文章:

java - 使用 CompareTo 比较数组中的字符串和 double 值?

android - 从 Android 客户端将消息记录到相扑逻辑

android - ActionbarCompat 的 MultiChoiceAdapter NoSuchMethodException : startActionMode

android - 如何用Android应用程序打包大量照片?

javascript - 如果值不存在,则将数组对象插入另一个数组对象

PHP 数组 : cross data

c - 段错误 : 11 on c program

python - "bucketsort"使用 python 多处理

android - 如何在 Android 上将自定义 View 居中?

C++ 无效数组<T, N> 下标