我有类ListItem,表示ListView中的项目:
public class ListItem extends ArrayAdapter<String> {
private Uri[] image;
private String[] text;
private Activity context;
private Button button;
public ListItem(Activity context, String[] text, Uri[] image) {
super(context, R.layout.list_item, text);
this.context = context;
this.image = image;
this.text = text;
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.list_item, null, true);
button = (Button) rowView.findViewById(R.id.list_item_button_buy);
}
@Override
public View getView(int position, View view, ViewGroup parent)
{
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.list_item, null, true);
TextView textView = (TextView) rowView.findViewById(R.id.list_item_text);
ImageView imageView = (ImageView) rowView.findViewById(R.id.list_item_image);
textView.setText(text[position]);
imageView.setImageURI(image[position]);
return rowView;
}
}
ListView上的我设置列表适配器:
list.setAdapter(new ListItem(context,items,images));
我需要从ListItem设置Button的动作,我需要在ListView中设置动作,因为我需要知道单击Button的列表项的数量。
当用户单击此按钮时,我想将一个Product项添加到ArrayList,为此我需要知道点击的按钮数(从顶部开始计数 - 0)。
LE:当我点击ListItem时,我看不到视觉效果,我需要激活它。
请帮帮我。
答案 0 :(得分:1)
不确定我是否理解你。问题只是按钮点击?这很容易做到。创建一个存储项目位置的ClickListener类。
public class MyClickListener implements ClickListener {
private int position;
public MyClickListener(int position){
this.position = position;
}
public void onClick(View v) { ... }
}
并将其设置在getView()
方法
@Override
public View getView(int position, View view, ViewGroup parent){
...
rowView.findViewById(R.id.list_item_button).setOnClickListener(new MyClickListener(position));
...
}
在这里,您知道听众中的项目位置。