-3

私はリサイクルアダプターのアイテムから合計価格を取得したいと思いますが、それから得ることはできません。 これは リサイクルアダプターで利用可能な製品の合計金額を取得し、別のフラグメントに渡す方法は?

public class CartHolder extends RecyclerView.ViewHolder { 
      TextView cartUPDTPrice,cartPRICE,cartDESC,cartTITLE; 
      ImageView cartIV,removeIMG,minusIMG,plusIMG; 

     public CartHolder(View itemView) { 
      super(itemView); 
      cartUPDTPrice = (TextView) itemView.findViewById(R.id.cartUPDTPrice); 
      cartPRICE = (TextView) itemView.findViewById(R.id.cartPRICE); 
      cartDESC = (TextView) itemView.findViewById(R.id.cartDESC); 
      cartTITLE = (TextView) itemView.findViewById(R.id.cartTITLE); 
      cartIV=(ImageView)itemView.findViewById(R.id.cartIV); 
      removeIMG=(ImageView)itemView.findViewById(R.id.removeIMG); 
      minusIMG=(ImageView)itemView.findViewById(R.id.minusIMG); 
      plusIMG=(ImageView)itemView.findViewById(R.id.plusIMG); 
     } 
    } 


    public void onBindViewHolder(final CartAdapter.CartHolder holder, int position) { 
     prodCART = cartPRO.get(holder.getAdapterPosition()); 
     holder.cartUPDTPrice.setText(prodCART.getPPrice().trim()); 
     holder.cartPRICE.setText(prodCART.getPName().trim()); 
     holder.cartDESC.setText(prodCART.getPName().trim()); 
     holder.cartTITLE.setText(prodCART.getPName().trim()); 
     holder.removeIMG.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       try { 
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context); 
        alertDialogBuilder.setMessage("Are you sure,You wanted to Remove\n"+holder.cartTITLE.getText()); 
        alertDialogBuilder.setCancelable(false); 
        alertDialogBuilder.setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface arg0, int arg1) { 
          cartPRO.remove(holder.getAdapterPosition()); 
          notifyItemRemoved(holder.getAdapterPosition()); 
         } 
        }); 
        alertDialogBuilder.setNegativeButton("No", new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialogInterface, int i) { 

         } 
        }); 
        AlertDialog alertDialog = alertDialogBuilder.create(); 
        alertDialog.show(); 
       }catch (Exception e){ 
       } 
      } 
     }); 

    } 

は、今私は、アダプタに存在するすべての項目のcartPRICEのSUMをしたいと、カートの総計を表示フラグメントに渡し、アダプタの私のコードです。

答えて

1

あなたはどこでもあなたが望むint型アダプタがsum = sum + prodCART.getPPrice();と使用のように呼ばれるたびにint sum = 0のように1つのpublic static int型を取り、そのint型でバレスを追加することができます。

public static boolean add= true; 

あなたのonBindViewHolder();

if(add){ 
sum = sum + prodCART.getPPrice(); 
add= false; } 
+0

私は試しましたが、たびに値を追加して間違った合計をスクロールします。 –

+0

最初の値を追加した後に1つのブール値を使用し、falseを設定します。 –

+0

これを行う方法の詳細を教えてください。 –

0
Create the customListenerAction to get the control in fragment 

public interface CartActionListener{ 
void RemoveCardClicked(ArrayList<prodCART> remainingCartList); 
} 

pass the interface method in the RecycleAdapter Constructor 

public class CartHolder extends RecyclerView.ViewHolder { 
      TextView cartUPDTPrice,cartPRICE,cartDESC,cartTITLE; 
      ImageView cartIV,removeIMG,minusIMG,plusIMG; 
    CartActionListener cartActionListener 

     public CartHolder(View itemView ) { 
      super(itemView); 
this.CartActionListener =cartActionListener ; 
      cartUPDTPrice = (TextView) itemView.findViewById(R.id.cartUPDTPrice); 
      cartPRICE = (TextView) itemView.findViewById(R.id.cartPRICE); 
      cartDESC = (TextView) itemView.findViewById(R.id.cartDESC); 
      cartTITLE = (TextView) itemView.findViewById(R.id.cartTITLE); 
      cartIV=(ImageView)itemView.findViewById(R.id.cartIV); 
      removeIMG=(ImageView)itemView.findViewById(R.id.removeIMG); 
      minusIMG=(ImageView)itemView.findViewById(R.id.minusIMG); 
      plusIMG=(ImageView)itemView.findViewById(R.id.plusIMG); 
     } 
    } 


    public void onBindViewHolder(final CartAdapter.CartHolder holder, int position) { 
     prodCART = cartPRO.get(holder.getAdapterPosition()); 
     holder.cartUPDTPrice.setText(prodCART.getPPrice().trim()); 
     holder.cartPRICE.setText(prodCART.getPName().trim()); 
     holder.cartDESC.setText(prodCART.getPName().trim()); 
     holder.cartTITLE.setText(prodCART.getPName().trim()); 
     holder.removeIMG.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       try { 
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context); 
        alertDialogBuilder.setMessage("Are you sure,You wanted to Remove\n"+holder.cartTITLE.getText()); 
        alertDialogBuilder.setCancelable(false); 
        alertDialogBuilder.setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface arg0, int arg1) { 
          cartPRO.remove(holder.getAdapterPosition()); 
          notifyItemRemoved(holder.getAdapterPosition()); 
          CartActionListener.RemoveCardClicked(cartPRO); 
         } 
        }); 
        alertDialogBuilder.setNegativeButton("No", new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialogInterface, int i) { 

         } 
        }); 
        AlertDialog alertDialog = alertDialogBuilder.create(); 
        alertDialog.show(); 
       }catch (Exception e){ 
       } 
      } 
     }); 

    } 


while creating the instance for the recycle Adapter pass the interface method 


new YourRecycleAdapter(this,cartPRO,new CartActionListener(){ 
public void RemoveCardClicked(ArrayList<prodCART> remainingCartList){ 
    //it will return your remaining updated list of prod cart 
    //based on the remaining cart list to do your calculation and update it in your fragment since you are adapter instance in fragment screen 

}); 

i guess it will work fine for you . Based on your code you may need some more changes on your code 
+0

..

int count = recyclerview.getcount; and then you do like for(int i=0; i<count.getsize; i++){ int sum = 0; int sum = cartPRO.get(i).getPPrice(); + sum; } 

としてあなたの主な活動に使用し、総カウントとして、この合計値を使用してみてくださいしかし、どのように時間アダプタフィルとリサイクルで製品価格の合計を表示するにはビューが表示されますか? –

0

+0

recyclerview.getcountは使用できません。getCHildcountを使用できます。 –

+0

リサイクラ・ビューではない – Ashish

関連する問題