Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 2下拉列表“状态和城市”,根据所选状态设置城市字符串数组_Android_List_Drop Down Menu - Fatal编程技术网

Android 2下拉列表“状态和城市”,根据所选状态设置城市字符串数组

Android 2下拉列表“状态和城市”,根据所选状态设置城市字符串数组,android,list,drop-down-menu,Android,List,Drop Down Menu,我正在构建一个出租车预订应用程序。该应用程序需要向出租车司机提供一项功能,以指定他将在哪个城市运营。为了增强体验,我需要提供一个selectstate下拉列表,然后是selectcity下拉列表 状态列在如下的字符串数组中 <string-array name="stateArray"> <item>Andaman and Nicobar Islands</item> <item>Andhra Pradesh</item>

我正在构建一个出租车预订应用程序。该应用程序需要向出租车司机提供一项功能,以指定他将在哪个城市运营。为了增强体验,我需要提供一个
selectstate
下拉列表,然后是
selectcity
下拉列表

状态列在如下的字符串数组中

<string-array name="stateArray">
    <item>Andaman and Nicobar Islands</item>
    <item>Andhra Pradesh</item>
    <item>Arunachal Pradesh</item>
    <item>Assam</item>
</string-array>
<string-array name="AndhraPradesh">
    <item>Adilabad</item>
    <item>Adoni</item>
    <item>Amadalavalasa</item>
    <item>Amalapuram</item>
</string-array>
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        YourAdapter adapter = (YourAdapter) spinner2.getAdapter();

        switch (position) {
            case COUNTRY_ONE:
                adapter.setData(resources.getArray(R.array.cities_you_need_1));
                break;

            case COUNTRY_TWO:
                adapter.setData(resources.getArray(R.array.cities_you_need_2));
                break;
        }
    }

    @Override
    onNothingSelected(AdapterView<?> parent) {
        ((YourAdapter) spinner2.getAdapter()).clear();
    }
});

安达曼和尼科巴群岛
安得拉邦
印控"阿鲁纳恰尔邦"
阿萨姆
该城市的城市名称列在如下字符串数组中

<string-array name="stateArray">
    <item>Andaman and Nicobar Islands</item>
    <item>Andhra Pradesh</item>
    <item>Arunachal Pradesh</item>
    <item>Assam</item>
</string-array>
<string-array name="AndhraPradesh">
    <item>Adilabad</item>
    <item>Adoni</item>
    <item>Amadalavalasa</item>
    <item>Amalapuram</item>
</string-array>
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        YourAdapter adapter = (YourAdapter) spinner2.getAdapter();

        switch (position) {
            case COUNTRY_ONE:
                adapter.setData(resources.getArray(R.array.cities_you_need_1));
                break;

            case COUNTRY_TWO:
                adapter.setData(resources.getArray(R.array.cities_you_need_2));
                break;
        }
    }

    @Override
    onNothingSelected(AdapterView<?> parent) {
        ((YourAdapter) spinner2.getAdapter()).clear();
    }
});

阿迪拉巴德
阿多尼
阿马达拉瓦萨
阿马拉普拉姆
在我的听众中

在布局xml文件
android:entries=“@array/stateArray”
中设置状态非常简单


我看到许多其他的stackoverflow问题推荐ArrayList和setAdapter。我想知道是否有一种相对简单的方法可以根据所选的州以编程方式为城市设置条目。

使用OnItemSelectedListener。 我想你们有两个纺纱机。会是这样的

<string-array name="stateArray">
    <item>Andaman and Nicobar Islands</item>
    <item>Andhra Pradesh</item>
    <item>Arunachal Pradesh</item>
    <item>Assam</item>
</string-array>
<string-array name="AndhraPradesh">
    <item>Adilabad</item>
    <item>Adoni</item>
    <item>Amadalavalasa</item>
    <item>Amalapuram</item>
</string-array>
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        YourAdapter adapter = (YourAdapter) spinner2.getAdapter();

        switch (position) {
            case COUNTRY_ONE:
                adapter.setData(resources.getArray(R.array.cities_you_need_1));
                break;

            case COUNTRY_TWO:
                adapter.setData(resources.getArray(R.array.cities_you_need_2));
                break;
        }
    }

    @Override
    onNothingSelected(AdapterView<?> parent) {
        ((YourAdapter) spinner2.getAdapter()).clear();
    }
});
spinner1.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
onItemSelected(AdapterView父项、视图、整型位置、长id){
YourAdapter=(YourAdapter)喷丝头2.getAdapter();
开关(位置){
案例一:
setData(resources.getArray(R.array.cities\u您需要\u 1));
打破
案例二:
setData(resources.getArray(R.array.cities\u您需要的\u 2));
打破
}
}
@凌驾
onNothingSelected(AdapterView父级){
((YourAdapter)spinner2.getAdapter()).clear();
}
});
请注意,方法clear()和setData()是自定义帮助器方法。SpinnerAdapter中没有此类方法。 或者您可以实现对象,并在索引中比较id。上面的代码没有经过测试,只是为了展示一个想法