0

Ich versuche, mein Badge basierend auf Klickereignissen von Schaltflächen in einer Recycleransicht zu aktualisieren. dies ist mein Code:android: So aktualisieren Sie Badge TextView von einer Klasse, die RecyclerView erweitert

@Override 
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 

     inflater.inflate(R.menu.navigation_drawer, menu); 
     item = menu.findItem(R.id.add); 
     badgeLayout = (RelativeLayout) MenuItemCompat.getActionView(item); 
     mCounter = (TextView) badgeLayout.findViewById(R.id.counter); 
     cartButton=(Button) badgeLayout.findViewById(R.id.button1); 
     cartButton.setTypeface(icon); 

     super.onCreateOptionsMenu(menu, inflater); 
    } 

Ich möchte den Wert von mCounter aktualisieren, die sich hier:

Dies ist der recyclerview Code:

holder.cartBtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       mCounter.setText("2");// THIS DOES NOT WORK 

      } 
     }); 

Bitte helfen Sie mir!

+0

Können Sie uns erklären, was mit der aktuellen Lösung geschieht? Absturz? Nicht aktualisieren? – QVDev

+0

@Shahid Sarwar können Sie es auch erreichen, indem Sie Schnittstelle in Adapter – Nisarg

+0

nicht aktualisieren .. es stürzt nicht ab .. nur nichts zu tun –

Antwort

1

Sie eher dieses Ereignis (oder die Zahl gerade Sie einstellen möchten) zurück zu Aktivität, rufen invalidateOptionsMenu(); und in der Funktion onPrepareOptionsMenu(Menu menu) rufen Sie den Code Sie haben in onCreateOptionsMenu(Menu menu, MenuInflater inflater)

0

Sie diese Aufgabe ausführen kann auf 4 Arten passieren sollte :

  1. Erstellen Sie public static Variable und legen Sie ihren Wert zu Ihrem Badge TextView.
  2. erstellen BroadcastReceiver und rufen Sie es auf, wenn sich der Wert ändert.
  3. Verwenden EventBusreference
  4. Neues interface
+0

@ downvoter: Grund für den Downvote bitte. –