如何调用驻留在listview项目中的按钮的onclick监听器

时间:2013-04-11 05:30:41

标签: android listview button onclicklistener

我在列表视图上有一个按钮,我想点击,但问题是在点击时,目前它无法识别听众呼叫,无论是列表视图还是按钮,

提前感谢... :)

3 个答案:

答案 0 :(得分:1)

如果您不想处理单击整个列表项,请不要在listview上设置侦听器。您可以为列表项设置单个视图的侦听器,如下例所示:

public class MyArrayAdapter extends ArrayAdapter<Map<String, String>> {

    private Context mContext;

    public MyArrayAdapter(Context context, int textViewResourceId,
            List<Map<String, String>> objects) {
        super(context, textViewResourceId, objects);
        mContext = context;
    }

    public View getView(final int position, View convertView, ViewGroup parent) {

        if (convertView == null) {
            convertView = LayoutInflater.from(getContext()).inflate(
                    R.layout.list_row, null, false);
        }

        final Map<String, String> data = (Map<String, String>) getItem(position);

        ImageView imageView = (ImageView) convertView
                .findViewById(R.id.imageView);
        imageView.setImageResource(Integer.parseInt(data.get("image")));

        TextView textView = (TextView) convertView
                .findViewById(R.id.textViewTitle);
        textView.setText(data.get("name"));

        Button button = (Button) convertView
                .findViewById(R.id.buttonShow);

        button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                mContext.startActivity(new Intent(mContext,
                            DetailActivity.class).putExtra(EXTRA_IMAGE_URL,
                            data.get("url")));
            }
        });

        return convertView;
    }

}

答案 1 :(得分:0)

您需要在列表适配器的button.setOnClickListener()函数中添加getView()

答案 2 :(得分:0)

首先,您需要创建自定义适配器扩展ArrayAdapter或BaseAdapter,并且他有getView方法。在此方法中,您可以将OnlickListener设置为按钮。

链接示例创建自定义适配器:

Custom Adapter for List View

http://developer.android.com/reference/android/widget/Adapter.html

http://www.ezzylearning.com/tutorial.aspx?tid=1763429