亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java:如何為每個 RecyclerView 項目制作自己的總數計數器?

Java:如何為每個 RecyclerView 項目制作自己的總數計數器?

紅顏莎娜 2023-05-10 13:44:01
我需要為每個 RecyclerView 項目單獨制作一個總數計數器。這是清除這種情況的圖片和代碼:TTL 是我需要的總計數器。當我單擊播放器 1 加號時,該特定項目的總計數器應增加 1,減號應減少 1。我現在有什么:ViewHolder(處理減號和加號):public static class GameViewHolder extends RecyclerView.ViewHolder {    public TextView mTextPlayer, mTextPar, mTotalTxt, mNumberTotal;    public ImageView mImageMinus, mImagePlus;    public GameViewHolder(@NonNull View itemView, final GameAdapter.OnItemClickListener listener) {        super(itemView);        mTextPlayer = itemView.findViewById(R.id.gameNameRecycler);        mTextPar = itemView.findViewById(R.id.gameParNumberRecycler);        mImageMinus = itemView.findViewById(R.id.game_minus_btn);        mImagePlus = itemView.findViewById(R.id.game_plus_btn);        mTotalTxt = itemView.findViewById(R.id.game_total_txt);        mNumberTotal = itemView.findViewById(R.id.game_total_number);        mImageMinus.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                if (listener != null) {                    int position = getAdapterPosition();                    if (position != RecyclerView.NO_POSITION) {                        listener.onMinusClick(position);                    }                }            }        });        mImagePlus.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                if (listener != null) {                    int position = getAdapterPosition();                    if (position != RecyclerView.NO_POSITION) {                        listener.onPlusClick(position);                    }                }            }        });    }所以這就是我現在所擁有的,但是 atm 每個項目都使用相同的 itemCounter,所以如果我點擊播放器 1 加號按鈕,它的 TTL 是 1(它應該)但是在那之后當我點擊播放器 2 加號按鈕時,播放器 2 TTL 應該也是 1 但實際上是 2,因為 1 額外來自那個玩家 1 加上點擊。我如何更改它以單獨為兩者工作?
查看完整描述

1 回答

?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

重要的是您可以notifyItemChanged(position)在已更改的行的位置調用 ,它只會更新回收站視圖中的該項目。


您可以從已分配的查看器中獲取值,而不是將您的計數保存在 totalCounter 中,例如String totalCounter = ((TextView) recyclerView.findViewHolderForAdapterPosition(position).itemView.findViewById(R.id.view)).getText().toString();


@Override

     public void onMinusClick(int position) {

            String parNum = mGameItemList.get(position).getText2();

            int intParNm = Integer.valueOf(parNum);


            if (intParNm != 1) {

                intParNm -= 1;

                totalCounter -= 1;

               mGameItemList.get(position).changeText2(Integer.toString(intParNm));

               mGameItemList.get(position).changeText4(Integer.toString(totalCounter));

               adapter.notifyItemChanged(position);

                }


            }


查看完整回答
反對 回復 2023-05-10
  • 1 回答
  • 0 關注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號