Android: ListView elements with multiple clickable elements

后端 未结 7 718
忘了有多久
忘了有多久 2021-01-03 11:22

I\'ve a ListView where every element in the list contains a TextView and two different Buttons. Something like this:

ListView
------------------         


        
7条回答
  •  [愿得一人]
    2021-01-03 11:44

    you need to make baseAdpter to achieve this

    public class ContactsAdapter extends BaseAdapter {
    
        ArrayList mlist;
        Context mcontext;
    
    
    public BluetoothChatadpter(Context context,ArrayList mchtlist) {      
            mlist =  mchtlist;
            mcontext = context;
    
        }
    
        @Override
        public int getCount() {
            return mlist.size();
        }
    
        @Override
        public Object getItem(int postion) {
            return mlist.get(postion);
        }
    
        @Override
        public long getItemId(int position) {
            return position;
        }
    
        @Override
            public View getView(int position, View convertview, ViewGroup viewgroup){
                View view = null;
                if(convertview == null){
                    LayoutInflater inflater = context.getLayoutInflater();
                    view = inflater.inflate(R.layout.contactrow, null);
    
                    ContactHolder holder = new ContactHolder();
    
                    holder.txtviewfirstname = (TextView)view.findViewById(R.id.firstname);
                    holder.txtviewphone = (TextView)view.findViewById(R.id.phone);
                    holder.chkselected = (CheckBox)view.findViewById(R.id.check);
    
                    setOnClickListener(new OnClickListener() {
            @Override
                public void onClick(View arg0) {
                // to open the selected file in resp
    
                      // do your work here
                     }});
    
    
        chkselected .setOnClickListener(new OnClickListener() {
            @Override
        public void onClick(View v) {
        // Toast.makeText(context,// "checked is clicke="+pos, 12).show();
                if (chkselected.isChecked())          
                           {            
    
                            // do your work here
                } else {
    
         // do your work here                               
                }
            }
    });
    
    
    
                view.setTag(holder);
    
            }
                else{
                    view = convertview;
                }
                ContactHolder holder2 = (ContactHolder) view.getTag();
                holder2.txtviewfirstname.setText(list.get(position).firstname);
                holder2.txtviewphone.setText(list.get(position).phonenumber);
                holder2.chkselected.setChecked(list.get(position).selected);
                return view;
            }
    
    }
    

提交回复
热议问题