当我单击一个Spinner项时,它将显示一个ListView

时间:2017-08-27 21:25:08

标签: android database listview android-spinner

我想创建一个包含Spinner和ListView的应用程序,当我单击一个Sinner项时,它将打开一个新的ListView,没有新的Activity只是为了从数据库更新ListView。

例如,我在Spinner中有欧洲和非洲,当我点击欧洲时,它会向我显示一个与欧洲国家的ListView,当我点击非洲时,它会向我显示与非洲国家的ListView。

我在互联网上搜索过这个,但我找不到任何东西。

1 个答案:

答案 0 :(得分:1)

首先,要设置微调器,您需要一个适配器。然后,您需要使用OnItemSelectedListener。使用此代码:

    europeListView = (ListView) findViewById(R.id.europeListView);
    africaListView = (ListView) findViewById(R.id.africaListView);

    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.countries, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    Spinner spinner = (Spinner) findViewById(R.id.spinner);
    spinner.setAdapter(adapter);

    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {

            if(adapter.getItem(i) == "Europe"){

                europeListView.setVisibility(View.VISIBLE);
                africaListView.setVisibility(View.INVISIBLE);

            } else if(adapter.getItem(i) == "Africa"){

                africaListView.setVisibility(View.VISIBLE);
                europeListView.setVisibility(View.INVISIBLE);

            }

        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {

        }
    });

最后,在strings.xml文件中创建一个名为“countries”的字符串数组,如下所示:

<string-array name="countries">
    <item>Europe</item>
    <item>Africa</item>
</string-array>

希望这有帮助!