我目前正在练习一个应用程序,其中用户单击三个按钮(超级英雄,动作,动画)之一,并触发第二个活动,该活动显示基于所选按钮标签的项目。我有两个微调器:第一个显示电影,第二个显示电影的播放时间。
我有一个看起来像这样的外部文本文件:
Mission Impossible: Fallout| 6.6| 148| Tom Cruis, Henry Carvill| 11:00 am, 1:10 pm, 2:55 pm, 3:05 pm, 5:10 pm| mifallout.jpg
The Predator| 5.8| 118| Olivia Munn, Boyd Holbrook| 1:10 pm, 2:50 pm, 4:55 pm, 6:55 pm| predator.jpg
然后我逐行读取文件并将其存储到数组中,以填充第一个微调器:
String receiveTag = getIntent().getExtras().getString("btnTag");
if (receiveTag.equals("SUPERHERO")) {
try{
bufferedReader = new BufferedReader(new InputStreamReader(this.getAssets().open("movie_superhero.txt")));
while ((sMovies = bufferedReader.readLine())!=null) {
if (!sMovies.equals("")) {
arrMovies = sMovies.split("\\|");
list.add(arrMovies[0].toString());
listTime.add(arrMovies[4].toString());
}
}
} catch (IOException e) {
e.printStackTrace();
}
dataAdapter = new ArrayAdapter<String>(this, R.layout.support_simple_spinner_dropdown_item, list);
dataAdapter.setDropDownViewResource(R.layout.support_simple_spinner_dropdown_item);
spinner.setAdapter(dataAdapter);
现在的事情是什至我已经将电影详细信息存储在arrMovies中,选择后我无法获取它来更新文本,还无法设置第二个微调器来显示电影的放映时间(listTime.add(arrMovies [4]。 toString());)
以下是我尝试根据第一个微调框的选定项目设置文本视图的方法。
//Showtime
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
String item = adapterView.getItemAtPosition(i).toString();
Toast.makeText(adapterView.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show();
ratingText.setText(arrMovies[1].toString());
durationText.setText(arrMovies[2].toString());
castText.setText(arrMovies[3].toString());
adapterTime = new ArrayAdapter<String>(mContext, R.layout.support_simple_spinner_dropdown_item, listTime);
adapterTime.setDropDownViewResource(R.layout.support_simple_spinner_dropdown_item);
spinner2.setAdapter(adapterTime);
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
屏幕截图: