保存Listview项状态

时间:2016-02-10 20:18:24

标签: java android listview

我的应用中有一个包含50部电影的列表视图。当用户点击列表视图中的电影时,alpha会从1f变为0.2f。我想设置它,以便当我退出活动和应用程序本身时,列表视图中已被点击的项目在重新打开时将保持在0.2f,以便用户知道他们观看的列表中的哪些电影。任何帮助将不胜感激。

这是我的代码:

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, topMovies);

    moviesListView.setAdapter(arrayAdapter);

    final MediaPlayer mPlayer = MediaPlayer.create(this,R.raw.pindrop);
moviesListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            if (view.getAlpha() == 1f) {

                mPlayer.start();
                Toast.makeText(getApplicationContext(), "You Watched " + topMovies.get(position), Toast.LENGTH_LONG).show();
                view.animate().alpha(0.2f);
            } else {

                view.animate().alpha(1f);

            }
        }
    });

1 个答案:

答案 0 :(得分:0)

我建议你做一些不同的事情。 在drawable文件夹中创建一个选择器 selector.xml

drawable_selected.xml

    <shape>
<solid color="enter your color here"/>
</shape>

drawable_unselected.xml

<shape>
<solid color="enter your color here" />
</shape>

selector.xml

 <selector>
    <item android:stateSelected="true" android:drawable="@drawable/drawable_selected"/>
    <item android:state_selected="false" android:drawable="@drawable/drawable_unselected"/>
 </selector>

然后定义您的视图背景

view.setBackground(getResources().getDrawable(R.drawable.selector);

然后选择视图时

view.setSelected(true);

它会自动更改您的背景。希望这会有所帮助。