在ListItem中使用Button的ListView Android

时间:2013-12-30 21:19:24

标签: android listview button action

我有类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时,我看不到视觉效果,我需要激活它。

请帮帮我。 enter image description here

1 个答案:

答案 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));
    ...
}

在这里,您知道听众中的项目位置。