到目前为止,我有一个使用自定义适配器的列表视图,列表中的每个项目都有一个按钮。 我真的很困惑;我试图做到以下几点:如何知道点击了哪个按钮
当用户点击按钮(删除按钮)列表中的项目,我想知道在哪个项目按钮被点击,所以我可以知道要删除的项目 - 我该如何执行这个?我见过有关设置标签的东西,但我仍然很迷茫。
我也尝试从主要活动的列表布局到达按钮,并且无法引用它。
请你能给我一个关于如何做我想做的感谢的详细描述。
添加的适配器代码:
public class LocationAdapter extends BaseAdapter{
String [] n;
Context context;
String[] a;
private static LayoutInflater inflater=null;
public LocationAdapter(MainActivity mainActivity, String[] names, String[] addresses) {
// TODO Auto-generated constructor stub
n=names;
context=mainActivity;
a=addresses;
inflater = (LayoutInflater)context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return n.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public class Holder
{
TextView name;
TextView address;
ImageButton ib;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
Holder holder=new Holder();
View rowView;
rowView = inflater.inflate(R.layout.rowlayout2, null);
holder.name =(TextView) rowView.findViewById(R.id.EditTextName);
holder.address =(TextView) rowView.findViewById(R.id.EditTextAddress);
holder.ib = (ImageButton) rowView.findViewById(R.id.Delete);
holder.name.setText(n[position]);
holder.address.setText(a[position]);
holder.ib.setTag(convertView);
rowView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(context, "You Clicked "+n[position], Toast.LENGTH_LONG).show();
}
});
return rowView;
}
}
基本上,onClickListener应该在Adapter的getView中实现,该getView具有position参数。你能发布你的适配器代码吗? – inmyth