在android toast中显示listview数据

在android toast中显示listview数据,android,android-listview,onclicklistener,Android,Android Listview,Onclicklistener,我有一个带有按钮的列表视图和一组数据(姓名、年龄、身高),列表视图的一个元素是每个人的数据。我希望能够在单击按钮时创建一个吐司,显示此人的姓名。人民的数据存储在 我创建的对象的arrayList。如何做到这一点?我遇到的问题是在getView方法中访问onclicklistener onclick函数中的数据,您必须设置setOnClickListener,然后设置单击项的getPosition,并使用它从保存数据的arraylist中获取信息,然后调用getName()(或返回名称的某个函数)

我有一个带有按钮的列表视图和一组数据(姓名、年龄、身高),列表视图的一个元素是每个人的数据。我希望能够在单击按钮时创建一个吐司,显示此人的姓名。人民的数据存储在
我创建的对象的arrayList。如何做到这一点?我遇到的问题是在getView方法中访问onclicklistener onclick函数中的数据,您必须设置setOnClickListener,然后设置单击项的getPosition,并使用它从保存数据的arraylist中获取信息,然后调用getName()(或返回名称的某个函数)并显示它

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

            ViewHolder holder = null;
            Log.v("ConvertView", String.valueOf(position));

            if (convertView == null) {
                LayoutInflater vi = (LayoutInflater) getActivity()
                        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                convertView = vi.inflate(R.layout.row, null);

                holder = new ViewHolder();
                holder.textView = (TextView) convertView
                        .findViewById(R.id.textViewRow);
                holder.button = (Button) convertView
                        .findViewById(R.id.checkBoxRow);
                convertView.setTag(holder);

                holder.button.setOnClickListener(new View.OnClickListener() {
                    public void onClick(View v) {
                        Toast.makeText(this, "Name: " + yourArrayList.get(position).getName(), Toast.LENGTH_LONG).show();
                    }
                });

            } else {
                holder = (ViewHolder) convertView.getTag();
            }
            return convertView;
        }
    }


private class ViewHolder {
            TextView textView;
                    Button button;
        }

在列表中使用其对象的类中编写getter和setter代码。在列表的getView方法的每一行中为按钮添加OnClickListener,然后使用position和get方法显示人员姓名

比如说-

ArrayList<PersonData> list = new ArrayList<PersonData>();

你说得对,谢谢。不知怎么的,我错过了。在这种情况下,在getView方法中为您的按钮添加一个OnClickListener,其余部分与Matej解释的基本相同。我将编辑我的答案。
button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

    Toast.makeText(this,"" + list.get(position).getName(),Toast.LENGTH_LONG).show();
                }
        });