Android Studio在列表视图项上保存drawableLeft图标单击

时间:2018-06-19 13:10:19

标签: android listview

我遇到了一个我无法解决的小问题,我搜索了网络,但找不到答案。我正在为手机制作一个小型android应用程序,并且我有一个listview项,其中没有几项。在我的listView中单击某些项目时,我想在左侧显示一个小勾号,以便用户可以看到他选择的内容。下次用户打开或输入该活动时,他上次单击的内容上应该已经有复选标记。

listview item example

我像这样设置drawableLeft图标,但是现在我拥有的每个listView项都具有相同的选中标记。

filter_grep

2 个答案:

答案 0 :(得分:0)

getView()方法上,您需要根据签入以编程方式设置可绘制对象,哪些项目带有刻度线,哪些没有刻度线。

希望这会有所帮助。

    TextView TextGornji = (TextView) convertView.findViewById(R.id.lblcountryname);

    // Provide your condition here instead of isShow
    if (isShow) {
        Drawable img = mContext.getResources().getDrawable(R.drawable.tick); //Provide tick mark drawable
        img.setBounds(0, 0, 60, 60);
        TextGornji.setCompoundDrawables(img, null, null, null);
    } else {
        TextGornji.setCompoundDrawables(null, null, null, null);
    }

答案 1 :(得分:0)

变量定义

  private int mSelectedItem = -1;

和getView方法添加此代码

 if(mSelectedItem==position)
        {
            holder.textview.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_right, 0,
                    0, 0);
        }
        else
        {
            holder.textview.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_blank, 0,0, 0);
        }

并单击事件以添加此代码

  mSelectedItem = getAdapterPosition();
  notifyDataSetChanged();