ListView setOnItemClickListener not working in custom list view

前端 未结 3 849
感动是毒
感动是毒 2021-01-05 14:15

I have a list view with two text view and one edit text in each row , list view setOnItemClickListener() is not working.

Here My Java Code.

3条回答
  •  渐次进展
    2021-01-05 14:15

    This custom adapter is for you here you can achieve tha both onclick and on item click listener also....Here i used the custom listener which is used to pass the object of the selected item..That's all If you have any query comment...All the best

    public class CustomAdapter extends ArrayAdapter {
    
    public ArrayList mlist;
    public Context context;
    public LayoutInflater inflater;
    
    public CustomAdapter(Context context, int resource, ArrayList mlist) {
        super(context, resource);
        this.mlist = mlist;
        this.context = context;
        inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
    
    @Override
    public int getPosition(Sample item) {
        return super.getPosition(item);
    }
    
    @Override
    public Sample getItem(int position) {
        return mlist.get(position);
    }
    
    @Override
    public int getCount() {
        return mlist.size();
    }
    
    @Override
    public long getItemId(int position) {
        return super.getItemId(position);
    }
    
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        convertView = inflater.inflate(R.layout.listitem, null);
        LinearLayout layout = (LinearLayout)convertView.findViewById(R.id.linearlayoutSample);;
        TextView text1 = (TextView) convertView.findViewById(R.id.item1);
        TextView text2 = (TextView) convertView.findViewById(R.id.item2);
        layout.setBackgroundColor(Color.GREEN);
        text1.setText(mlist.get(position).getListitem1());
        text2.setText(mlist.get(position).getListitem2());
        text2.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // you just put your Logic here And use this custom adapter to
                // load your Data By using this particular custom adapter to
                // your listview
    
            }
        });
        convertView.setOnClickListener(new ListenerT(Model m) {
    
            @Override
            public void onClick(View v) {
                Model m = study;
    
            }
        });
        return convertView;
    }
    private class ListenerT implements OnClickListener {
    
        Model study;
    
        public ListenerT(Model nm) {
            study = nm;
        }
    
        @Override
        public void onClick(View v) {
    
        }
    }
    
      }
    

提交回复
热议问题