如何获取listview

时间:2015-04-26 10:56:15

标签: java android

我有一个带有textview和按钮的自定义小部件。我的列表视图包含自定义小部件的列表。我想知道点击了哪个按钮。 就像在Facebook中一样,每个帖子都有一个反应按钮,当你点击它时,你会转到一个特定的页面。

1 个答案:

答案 0 :(得分:1)

使用以下代码创建自定义列表。您可以创建一个holder类来保存按钮和textview对象。这将有助于您使用持有者类检测按钮单击。

 class MyAdpter extends ArrayAdapter
        {

            int layout;
            ArrayList<Data> arr;
            Context con;

            public MyAdpter(Context context, int textViewResourceId, ArrayList<Data> objects) {
                super(context, textViewResourceId, objects);

                layout=textViewResourceId;
                arr= objects;
                con=context;
                // TODO Auto-generated constructor stub
            }
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                // TODO Auto-generated method stub
                final ViewHolder  holder=new ViewHolder();
                if(convertView==null)
                {
                    LayoutInflater inflator=(LayoutInflater) con.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    convertView=inflator.inflate(layout, parent, false);
                    holder.tv=(TextView) convertView.findViewById(R.id.text);
                    holder.btn=(Button) convertView.findViewById(R.id.button);

                }



                holder.btn.setText("Data");
                holder.btn.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View arg0) {
                        // TODO Auto-generated method stub
                        Toast.makeText(con, ""+holder.btn.getText(), 800).show();

                    }
                });

                holder.tv.setText("DATA");


                return convertView;
            }

            @Override
            public int getCount() {
                // TODO Auto-generated method stub
                return super.getCount();
            }

        }
        static class ViewHolder
        {
            TextView tv;
            Button btn;
        }