【问题标题】:when listview's item is click,how to make its view color to be red, others is black?当listview的项目被点击时,如何使其视图颜色为红色,其他为黑色?
【发布时间】:2016-10-25 03:53:09
【问题描述】:

请看图。

这是listview,它的item是一个textview,我想要的结果是当我点击item时,它的textview的颜色变成红色,而其他所有没有选择的都是黑色。

listview.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            TextView one = (TextView) view.findViewById(R.id.item);
            one.setTextColor(Color.parseColor("#bb0e0e"));
        }
    });

我尝试这样,但是当您单击该项目时,您单击的所有项目都会变成红色。我该怎么做?

【问题讨论】:

标签: android listview onitemclick


【解决方案1】:

定义一个全局 int 变量

int tempLocation;

listview.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
   {
       tempLocation = position
      // adapter notify dataset change
      adapter.notifyDatasetChanged()
    }
});

并覆盖适配器的 getView 方法:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    final View view = View.inflate(context, R.layout.item_list, null);

    if (position == tempLocation) {
        // set your color
    }

    return view;
}

【讨论】:

    【解决方案2】:

    setcolor刷新listview后

       iew.setOnItemClickListener(new OnItemClickListener() {
    
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            TextView one = (TextView) view.findViewById(R.id.item);
            one.setTextColor(Color.parseColor("#bb0e0e"));
            adapter.notifyDataSetChanged();
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2011-08-21
      • 2020-01-05
      • 2021-04-03
      • 2021-10-26
      • 2017-01-06
      • 2013-06-21
      • 1970-01-01
      • 2019-03-28
      • 2021-11-23
      相关资源
      最近更新 更多