Android - 上下文菜单不再突出显示ListView中的选定项目

时间:2015-02-16 19:59:13

标签: android listview android-listview

我有一个显示文章列表的应用程序,点击后会将其背景颜色更改为绿色。 ListView扩展了ViewPager。发生颜色变化,以便用户知道已经读取了哪些文章。

它也会被记住,因此下次用户加载相同列表时,已点击的项目仍为绿色。下面的代码是我用来完成这项工作的代码。我现在遇到的问题是,当按下足够长的上下文菜单时,ListView上的文章在选择时不再改变颜色。

在我点击每个项目的绿色背景更改之前,选择用于变灰的ListView(上下文模式)中的项目。上下文菜单和功能仍然有效,但它不再显示已选择的项目。有人可以建议吗?

 public void onListItemClick(ListView l, View v, int postion, long id) {
    Article a = ((toReadListAdapter) getListAdapter()).getItem(postion);

    // when item has been clicked on, variable is set to true.
    a.setRead(true);
    saveToReadList(toReadList);

    .....

自定义适配器:

    // Defining custom adapter
private class toReadListAdapter extends ArrayAdapter<Article> {
    public toReadListAdapter(ArrayList<Article> listToRead) {
        super(getActivity(), 0, listToRead);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        if (convertView == null) {
            convertView = getActivity().getLayoutInflater().inflate(R.layout.new_articlelistfragment, null);
        }

        Article en = getItem(position);

    .....

    /*if the article has been clicked on, then read attribute value is true and
    background is green*/
    if(en.isRead()){
            convertView.setBackgroundColor(Color.parseColor("#C8E6C9"));

        }else{
            convertView.setBackgroundColor((Color.parseColor("#ffffff")));
        }

       /* convertView.setBackgroundColor(Color.parseColor("#66BB6A"));*/

        return convertView;

1 个答案:

答案 0 :(得分:0)

在listView项目集onClickListener()

CheckedTextView item = (CheckedTextView)view;
if(item.isChecked()){
        convertView.setBackgroundColor(Color.parseColor("#C8E6C9"));
}