how to get a list item position by clicking the button inside it?

前端 未结 8 617
余生分开走
余生分开走 2020-12-09 16:48

actually I\'ve read some previous questions about this...

this is the code that I use

auto = (ListView)findViewById(R.id.auto);
String[] projection =         


        
8条回答
  •  情深已故
    2020-12-09 17:29

    We can get the position by implementing onClickListener inside the getView method of adapter.

    ADAPTER :

    public class DetailsListAdapter extends BaseAdapter {
    Context context;
    ArrayList data;
    
    public DetailsListAdapter(Context context, ArrayList data) {
        this.context = context;
        this.data = data;
    }
    
    @Override
    public int getCount() {
        return data.size();
    }
    
    @Override
    public Object getItem(int position) {
        return data.get(position);
    }
    
    @Override
    public long getItemId(int position) {
        return position;
    }
    
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        ViewHolder viewHolder;
        if (convertView == null) {
            convertView = LayoutInflater.from(context).inflate(R.layout.list_item_logs_details, null);
            viewHolder = new ViewHolder();
            viewHolder.btn = (Button) convertView.findViewById(R.id.log_details_1_a);
            viewHolder.btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                        Log.d("statusPosition","position "+position);
                }
            });
            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }
    
        return convertView;
    }
    
    public static class ViewHolder {
        TextView tv2, tv3, tv3a, tv4, tv4a;
        Button btn;
    }
    }
    

提交回复
热议问题