listview - ListView映像的onClick侦听器

  显示原文与译文双语对照的内容
0 0

我有一个 ListView与图像移到右边。 我想执行 onClick侦听器事件点击图像上的 ListView. 请参考图像进行参考。

enter image description here

我知道basic onClick侦听器Implementations,但这似乎清楚需要我:P

忘了说了,点击实际 ListView将shootup新活动,所以我需要维护两个模式。

 listView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            eventsData.remove(id);
            cursor.requery(); 
        }
    });   

上面的代码来执行删除操作点击任何列表元素 eventsData.remove(id);是一个数据库帮助器用于执行该任务。 我说过了我现在就要个方法来执行相同的过程juts点击图像,而不是整个列表元素,我要元素后面执行其他动作的列表。

我希望现在我清楚一点


Solution :

如果有人遇到相同情况的排序然后下面是适配器的完整代码。

 class CustomAdapter extends ArrayAdapter<String> {
 CustomAdapter() {
  super(Activity.this, R.layout.row, R.id.label, items);
}
public View getView(final int position, View convertView,
                    ViewGroup parent) {
  View row=super.getView(position, convertView, parent);
  deleteImg=(ImageView)row.findViewById(R.id.icon);
  deleteImg.setImageResource(R.drawable.delete);      
  deleteImg.setOnClickListener(new OnClickListener() {
      String s = items[position];
    @Override
    public void onClick(View v) {
        Toast.makeText(context, s, Toast.LENGTH_SHORT).show();          
    }
});
  return(row);
}

}

我知道编码有点蹩脚听我一一道来,我只想显示实际的过程就是这样。

帮我成功了= = = = =

时间:原作者:4个回答

0 0

中你应该这么做 Adapter不在Activity.

yourImg.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        // things you want to do 
    }
});
原作者:
0 0

中创建一个接口,用于传输适配器活动

public interface ListenerActivity        
{    
public void Remove();    
}

在Adapter Class :

class CustomAdapter extends ArrayAdapter<String> {
ListenerActivity listener;
CustomAdapter(YourActivity obj) {
  super(Activity.this, R.layout.row, R.id.label, items);
  listener=obj;
}
 public View getView(final int position, View convertView,
                ViewGroup parent) {
ImageId.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        listener.Remove();
    }
});
}

在你的活动:

class MyActivity extends Activity implements ListenerActivity
{
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
}
 @Override
    public void Remove() {
//Do your remove functionality here
    }         
}
原作者:
0 0

添加到最后一个回答和reering到这个答案,我添加了一些代码来刷新视图或挂项目或其它操作:

//in your adapter you have to get list of items:
 public CartListAdapter(Context context, int resourceId,
        List<CartItemModel> items) {
    super(context, resourceId, items);
    this.context = context;
    this.items= items;
}
//after that you have to set a listner on the imageView like this:
public View getView(int position, View convertView, ViewGroup parent) {
   holder.imageViewDelete.setOnClickListener(new imageViewClickListener(position));
   // some other lines code ...
   // here we get the item to remove
    rowItem= getItem(position);
    }
//and here the definition of the listner:
private class imageViewClickListene implements OnClickListener {
   int position;
    public imageViewClickListene( int pos)
        {
            this.position = pos;
        }
    public void onClick(View v) {
    // here we  remove the selected item    
        items.remove(rowItem);
            // here we refresh the adapter
        CartListAdapter.this.notifyDataSetChanged();
}
}

挺适合我,享受吧 !

原作者:
...