Android onClick-in-ListView适配器
我需要在ListView中添加的按钮上捕获onclick事件。我正在为我的ListView使用适配器 这是我的密码Android onClick-in-ListView适配器,android,listview,android-listview,Android,Listview,Android Listview,我需要在ListView中添加的按钮上捕获onclick事件。我正在为我的ListView使用适配器 这是我的密码 ImageButton s = (ImageButton) convertView.findViewById(R.id.sharebutton); s.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {
ImageButton s = (ImageButton) convertView.findViewById(R.id.sharebutton);
s.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.maketext(this,"Clicked.!!",Toast.LENGTH_SHORT).show();
}
});
但是不起作用
任何想法。谢谢。您需要创建自定义适配器,将应用程序的上下文作为参数传递,以设置单击:
listView.setAdapter(new PesquisaAdapter(this, anunciantescidades, this);
然后,在适配器的构造函数中,您将有一个OnClickListener来接收您传递的参数this
(上下文):
public PesquisaAdapter(Context context, List<Anunciante> anunciantes, OnClickListener onClick1)
在java中,您可以实现onClickListener,然后使用按钮执行所需操作:
@Override
public void onClick(View v) {
if(yourbutton.getId() == v.getId()){
final int position = listView.getPositionForView((LinearLayout)v.getParent());
Toast.maketext(this,"Clicked on position " + position + ".!!",Toast.LENGTH_SHORT).show();
}
}
希望有帮助 谢谢你的帮助
我可以这样做
holder.share.setFocusable(false);
holder.share.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.maketext(this,"Clicked.!!",Toast.LENGTH_SHORT).show();
}
});
这是我的Holder课程
static class ViewHolder {
public ImageView image;
public TextView short_notice;
public ImageButton share;
}
希望它能帮助
感谢您的评论和回答。是否可能重复?实际上,适配器有一个getContext()方法,不需要传递它。
static class ViewHolder {
public ImageView image;
public TextView short_notice;
public ImageButton share;
}