【发布时间】:2018-04-27 02:44:19
【问题描述】:
我想知道如何根据微调器上选择的内容填充我的 ListView。
我有一个使用 strings.xml 中的字符串数组填充的微调器,如下所示:
<string-array name="genres">
<item>Action</item>
<item>Adventure</item>
<item>Animation</item>
<item>Comedy</item>
<item>Crime</item>
<item>Drama</item>
<item>Horror</item>
<item>Science Fiction</item>
<item>Thriller</item>
<item>Western</item>
</string-array>
我创建了其他数组,根据选择的电影类型,我想用这些数组填充列表视图:
<string-array name="actionMovie">
<item>Die Hard</item>
<item>The Dark Knight</item>
</string-array>
<string-array name="adventureMovie">
<item>The Goonies</item>
<item>Back to the Future</item>
</string-array>
我不确定如何进行此操作。以下是我在主要活动中的一些内容。
Spinner spinGenre;
ListView lstViewMovies;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinGenre = (Spinner)findViewById(R.id.spinnerGenre);
lstViewMovies = (ListView) findViewById(R.id.listViewMovies);
我使用 setOnItemSelectedListener 来检索在此微调器中选择的值。只是为了测试,我正在使用 toast 消息显示在微调器中选择了什么值,但这不能正常工作。这就是我的 onItemSelected 方法当前的样子,有人可以指出我正确的方向以使 toast 工作(用于测试目的),或者甚至向我展示如何让 ListView 填充正确的字符串数组?
spinGenre.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Object item = parent.getItemAtPosition(position).toString();
if (item.toString() == "Action") {
Toast.makeText(MainActivity.this, "Action Genre Selected!",
Toast.LENGTH_SHORT).show();
} else if (item.toString() == "Adventure") {
Toast.makeText(MainActivity.this, "Adventure Genre Selected!",
Toast.LENGTH_SHORT).show();
} else if (item.toString() == "Animation") {
Toast.makeText(MainActivity.this, "Aanimation Genre Selected!",
Toast.LENGTH_SHORT).show();
} else if (item.toString() == "Comedy") {
Toast.makeText(MainActivity.this, "Comedy Genre Selected!",
Toast.LENGTH_SHORT).show();
} else if (item.toString() == "Crime") {
Toast.makeText(MainActivity.this, "Crime Genre Selected!",
Toast.LENGTH_SHORT).show();
} else if (item.toString() == "Drama") {
Toast.makeText(MainActivity.this, "Drama Genre Selected!",
Toast.LENGTH_SHORT).show();
} else if (item.toString() == "Horror") {
Toast.makeText(MainActivity.this, "Horror Genre Selected!",
Toast.LENGTH_SHORT).show();
} else if (item.toString() == "Science Fiction") {
Toast.makeText(MainActivity.this, "Science Fiction Genre Selected!",
Toast.LENGTH_SHORT).show();
} else if (item.toString() == "Thriller") {
Toast.makeText(MainActivity.this, "Thriller Genre Selected!",
Toast.LENGTH_SHORT).show();
} else if (item.toString() == "Western") {
Toast.makeText(MainActivity.this, "Western Genre Selected!",
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "Please select another genre!",
Toast.LENGTH_SHORT).show();
}
}
【问题讨论】:
标签: android listview android-studio spinner