2016-07-12 10 views
-1

Ich versuche, die gleiche Methode für verschiedene Ansichten zu verwenden. Jedes Mal, möchte ich TextView eine andere zu übergeben, mit zu arbeiten, wie folgt:Wie kann ich Ansichtsparameter (TextView) von OnClickListener an öffentliche Methode übergeben

ibIncreaseA.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      //increase the counter in textView 
      increase(view); 
     } 
    }); 

ibIncreaseB.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     //increase the counter in textView 
     increase(view); 
    } 
}); 

Und das ist die gewünschte Methode:

public void increase (View textView){ 
    int calculatedValue; 
    try { 
     String counter = textView.getText().toString(); 
     calculatedValue = Integer.parseInt(counter) + 1; 
     tvNumOfTickets.setText(String.valueOf(calculatedValue)); 
    }catch (Exception e){ 
     e.printStackTrace(); 
    } 
} 

Mein Problem ist, dass die textView in dem Verfahren erlaubt es nicht, Ich benutze .setText().

Wie kann ich es funktionieren lassen?

Antwort

0

Versuch unter Code

try { 
    String counter = ((TextView)textView).getText().toString(); 
    calculatedValue = Integer.parseInt(counter) + 1; 
    ((TextView)textView).setText(String.valueOf(calculatedValue)); 
}catch (Exception e){ 
    e.printStackTrace(); 
} 
+0

es funktionierte wie ein Charme – ProBul

+0

danke @ProBul Sie können es upvote – Sush

0

Es könnte Ihnen die Kopfschmerzen der ständigen down-Casting durch die Übergabe der Ansicht in die increase() Methode als ein TextView. (d. h. increase((TextView)view);)

Haben Sie Ihre Methode erhöhen eine TextView anstelle einer Ansicht akzeptieren, wie Sie es jetzt haben.

public void increase (TextView textView){ 
    ... 
} 
+0

Meine Ansicht ist, ein Klassenstufe var, sorry für nicht in der Frage enthält. Ich möchte jede Ansicht übergeben, so dass die Methode auf die bestandene Ansicht – ProBul

+0

@ProBul meine Antwort umgeschrieben wird, zieht es auf sush Antwort – mastrgamr