我需要在ListView中添加的按钮上捕获onclick事件。我正在为ListView使用适配器。
这是我的代码。
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();
}
});
但是不起作用。
任何想法。感谢。
答案 0 :(得分:2)
您需要创建自定义适配器,将应用程序的上下文作为参数传递以设置单击:
listView.setAdapter(new PesquisaAdapter(this, anunciantescidades, this);
然后,在适配器的构造函数中,您将有一个OnClickListener来接收您传递的参数this
(context):
public PesquisaAdapter(Context context, List<Anunciante> anunciantes, OnClickListener onClick1)
在适配器的getView方法中,您可以设置按钮的onClickListener:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.your_custom_layout, null);
ImageButton btn = (ImageButton ) v.findViewById(R.id.sharebutton);
btn.setOnClickListener(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();
}
}
希望它有所帮助!
答案 1 :(得分:0)
感谢您的帮助。
我可以这样解决。
holder.share.setFocusable(false);
holder.share.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.maketext(this,"Clicked.!!",Toast.LENGTH_SHORT).show();
}
});
这是我的持有人类。
static class ViewHolder {
public ImageView image;
public TextView short_notice;
public ImageButton share;
}
希望它有所帮助......!
感谢您的意见和答案。