我想创建一个包含Spinner和ListView的应用程序,当我单击一个Sinner项时,它将打开一个新的ListView,没有新的Activity只是为了从数据库更新ListView。
例如,我在Spinner中有欧洲和非洲,当我点击欧洲时,它会向我显示一个与欧洲国家的ListView,当我点击非洲时,它会向我显示与非洲国家的ListView。
我在互联网上搜索过这个,但我找不到任何东西。
答案 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>
希望这有帮助!