2017-12-17 1 views
-3

Ich bin Neuling, und ich möchte den Wert eines Textview1only ändern, wenn der Wert von Textview 2 50 übertreffen. Ps: (Ich möchte seinen Wert erhöhen)Inkrement Ganzzahl Wert einer Textansicht hängt von anderen Textansicht Inhalt

Irgendwelche Vorschläge!

+1

Bitte senden Sie den Code mit gearbeitet haben. Dann können wir Ihnen von dort helfen. Aber zuerst sollten Sie sich die Klasse 'TextWatcher' anschauen. – Barns

+0

Danke @Barns Ich habe nur die Idee, ich habe immer noch nicht herausgefunden, wie man es in einen Code umwandeln kann. –

Antwort

0

Okay. Angenommen, wir haben zwei Textansichten - textviewA und textviewB. Sie möchten, dass sich textviewA ändert, wenn sich der Wert von textviewB ändert. Du machst so etwas (ich gehe davon aus, dass du findViewById für diese Textansichten deklariert und getan hast).

textviewB.addTextChangedListener(new TextWatcher()){ 
//You override three methods here beforeTextChanged(),onTextChanged() and //afterTextChanged(). Since you are dealing with changing a textview's value //after the other textview has changed, you could use afterTextChanged() 
... 

@Override 
public void afterTextChanged(Editable editable) { 
if (editable != null){ 
String textInEditable = editable.toString(); 
int number = Integer.parseInt(textInEditable); 
if (number > 50){ 
textviewA.setText("Whatever text you want"); 
//as Keara mentioned in the comment below, the number would simply be incremented with 1 so number++ before you set the number to the textview. 
}}} 

etwas in diese Richtung

+2

Sie wollen den Wert erhöhen, so "was auch immer Sie wollen" sollte Integer.parseInt sein (textViewA.getText()) +1 – Keara

+1

@ Keara, vielen Dank dafür. Ich würde den Code jetzt aktualisieren. –

+0

Danke Samuel, aber für textviewB zeigt es eine Zahl, die sich kontinuierlich ändert, und wenn es 50 übertrifft, auch wenn sein Wert immer noch höher als 50 ist, sollte textviewA nur einen Schritt erhöhen. Und nicht wieder inkrementieren, bis textviewB kleiner als 50 wird und über 50 springt. –

0

Wie ich verstanden, Sie wollen nur text1 den Wert erhöhen, wenn text2 Wert 50 kreuzt, was bedeutet, wenn Text2 50 kreuzt und bleibt über 50, text1 Wert sollte nur einmal erhöhen.

Ändern von Samuel Agbede Antwort

boolean isValueChanged = true; 
    textViewB.addTextChangedListener(new TextWatcher()){  
     @Override 
     public void afterTextChanged(Editable editable) { 
      if (editable != null){ 
      String textInEditable = editable.toString(); 
      int number = Integer.parseInt(textInEditable); 
      if (number > 50 && isValueChanged){ 
       textViewA.setText(String.valueOf(number+1)); 
       isValueChanged = false; 
      } 
      if (number < 50){ 
       isValueChanged = true; 
      } 
      } 
     } 
    } 

diese Weise werden Sie den Zuwachs nur arbeiten, wenn die Zahl von über 50 geht wieder und wieder. Also, wenn die Zahl auf 51 geht, wird es inkrementieren und wenn es von 51 auf 60 geht, wird es nicht inkrementieren, wenn der Wert unter 50 zuerst geht, was Sie wollen.

oben ist sicherzustellen, dass es den Wert textViewA nicht wiederholt erhöht und nur erhöht, wenn die Werte in einer Sequenz above 50->below50->above 50 gehen.

Und der Wert hier erhöht wird, ist der Wert von textViewB was bedeutet, wenn textViewB 101 enthält dann textViewA enthält 102, können Sie es als Ihre Notwendigkeit ändern

Verwandte Themen