ListView中的Android按钮用于更改同一行中的文本

Eri*_* N. 3 android listview

我有一个listview,它使用自定义listAdapter进行设置.每个listView项中都有一个按钮来更改同一行中的textView.我该怎么做?以下是代码的一部分:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    final int _position = position;
    if (convertView == null) {
        convertView = l_Inflater.inflate(R.layout.activity_today_sales_list_view, null);
        holder = new ViewHolder();
        holder.txt_itemName = (TextView) convertView.findViewById(R.id.itemNameTB);
        holder.txt_itemPrice = (TextView) convertView.findViewById(R.id.priceTB);
        holder.txt_plusBtn = (Button) convertView.findViewById(R.id.addBtn);
        holder.txt_minusBtn = (Button) convertView.findViewById(R.id.minusBtn);


        convertView.setTag(holder);

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

    holder.txt_plusBtn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

             Log.d("Plus Btn", "Clicked");

        }


    });

    holder.txt_minusBtn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            Log.d("Minus Btn", "Clicked");

        }
    });

    holder.txt_itemName.setText(itemDetailsrrayList.get(position).getItemName());
    holder.txt_itemPrice.setText(itemDetailsrrayList.get(position).getItemCost());

    return convertView;
}
Run Code Online (Sandbox Code Playgroud)

Dha*_*dra 10

您可以使用以下代码来解决您的问题.

    @Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {
        convertView = l_Inflater.inflate(R.layout.activity_today_sales_list_view, null);
        holder = new ViewHolder();
        holder.txt_itemPrice = (TextView) convertView.findViewById(R.id.priceTB);
        holder.txt_plusBtn = (Button) convertView.findViewById(R.id.addBtn);
        holder.txt_plusBtn.setOnClickListener(new View.OnClickListener() {

             @Override
            public void onClick(View v) {
                ViewHolder holder1 = (ViewHolder)v.getTag();
                //Access the Textview from holder1 like below
                holder1.txt_itemPrice.setText("Plus");

            }
        });

        convertView.setTag(holder);

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

    holder.txt_itemPrice.setText(itemDetailsrrayList.get(position).getItemCost());

    return convertView;
}
Run Code Online (Sandbox Code Playgroud)