2017-01-04 4 views
0

Ich habe eine EditText onCreate wie folgt aus:Zugriffswert in einer editText von einer Unterklasse

final EditText firstText = (EditText) findViewById(R.id.my_text); 

ich den Wert von firstText von meiner Unterklasse erhalten möge:

private TextToSpeech.OnInitListener onInitListener = new TextToSpeech.OnInitListener() { 
     @Override 
     public void onInit(int status) { 

      if (status == TextToSpeech.SUCCESS) { 
       int result = mTts.setLanguage(Locale.US); 
       isLoaded = true; 
       String s = firstText.getText().toString(); 
      }else{ 

      } 
} 
+1

bitte das Szenario des Codes schreiben, plus Sie können Variable 'Klasse s' global machen dann geben sie –

+0

machen String s statische Unterklasse , public static String s, und halte check während der Verarbeitung! isEmpty oder! = null –

+1

@PavneetSingh Soweit ich weiß, ob er die Variable 's' global macht, kann er keine neue Referenz zuweisen und in der anonymen Klasse darauf zugreifen, 's' muss endgültig sein. Eine bessere Lösung wäre, den OnInitListener zu implementieren oder Schnittstellen für die Kommunikation zu verwenden. –

Antwort

1

erster Schritt: erstellen getter Methode von Ihrem class die onCreate Methode als enthält:

public String getFirstText() { 
    return firstText.getText().toString(); 
} 

zweiten Schritt: Call-Methode oben von subClass:

private TextToSpeech.OnInitListener onInitListener = new TextToSpeech.OnInitListener() { 
     @Override 
     public void onInit(int status) { 
       String s = getFirstText(); 
       // do whatever you want 

} 
Verwandte Themen