Android在ItemSelected上的微调器中读取文本文件

时间:2018-10-28 09:15:10

标签: java android spinner

我目前正在练习一个应用程序,其中用户单击三个按钮(超级英雄,动作,动画)之一,并触发第二个活动,该活动显示基于所选按钮标签的项目。我有两个微调器:第一个显示电影,第二个显示电影的播放时间。

我有一个看起来像这样的外部文本文件:

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) {

        }
    });

屏幕截图:

enter image description here

enter image description here

0 个答案:

没有答案