OnItemClick每个项目只有一次

我有一个列表视图的活动,列表视图是在列表视图适配器中创建的,所以在另一个类中。 我如何设置onItemClick上的几个动作只为每个列表项目触发一次? 我想更改被点击的列表项的图像源,如果在listView适配器中设置,我如何从我的活动中获取它?

以下是列表视图适配器中设置ListView中项目的一些代码:

 @Override
public View getView(final int position, View convertView, ViewGroup parent) {
    final ListCell cell;
    if (convertView == null) {
        convertView = inflater.inflate(R.layout.get_all_entry_list_view_cell, null);

        cell = new ListCell();
        cell.note = (TextView) convertView.findViewById(R.id.listViewNote);
        cell.img = (ImageView) convertView.findViewById(R.id.listViewImg);

        convertView.setTag(cell);

    }
    else {
        cell = (ListCell)convertView.getTag();
    }

 //.....Content is set with JSONObject from databse



 public class ListCell {
    private TextView note;
    private ImageView img;
}

向您的ListCell类添加一个布尔字段,以便您可以识别项目何时被触摸。 你需要编写适当的getter和setter。

 public class ListCell {
    private TextView note;
    private ImageView img;
    private boolean touched;
}

无论你在哪里使用onItemClick()onTouchEvent()或者你为了处理点击而重写的任何方法,你都可以使用这样的逻辑:

if(!listCell.touched) {
  //do whatever needs to happen when the item is clicked
  listCell.setTouched(true);
}

在某些时候,如果您想让用户稍后再次点击它们,您还需要重置所有列表项目上的布尔值,所以请记住像listCell.setTouched(false); 然后再允许用户再次单击这些项目。

链接地址: http://www.djcxy.com/p/30559.html

上一篇: OnItemClick only one time for each item

下一篇: Android list view inside a scroll view