2017-01-24 2 views
6

Also habe ich die getText() -Methode betrachtet und ich habe gelernt, dass es eine CharSequence zurückgibt. So können Sie nicht nur dies tun:getText(). ToString() vs (String) getText()

TextView myTextView = (TextView) findViewById(R.id.my_text_view); 
String myString = myTextView.getText(); 

Und stattdessen haben die zurück CharSequence in einen String zu konvertieren, indem dies zu tun:

TextView myTextView = (TextView) findViewById(R.id.my_text_view); 
String myString = myTextView.getText().toString(); 

Hier kommt meine Frage: Sie können nicht nur tue dies statt ?:

TextView myTextView = (TextView) findViewById(R.id.my_text_view); 
String myString = (String) myTextView.getText(); 

ich dies in meinem Code habe versucht, und es hat perfekt funktioniert gut, aber jeder scheint .. also mit dem ersten Weg zu werden gibt es ein Problem, das ich bin nicht mit meinem Weg zu sehen von es tun? Oder ist es nur ein anderer Weg, und wenn ja, was sind die Vorteile beider Wege?

Vielen Dank für Ihre Antworten im Voraus :)

Antwort

10

So ist es ein Problem, das ich bin nicht, es zu tun mit meiner Art und Weise zu sehen?

Es wird mit einem ClassCastException abstürzen, wenn die CharSequence die zurückgegeben wird, ist kein String. Wenn Sie beispielsweise Html.fromHtml() oder andere Mittel zum Erstellen einer SpannedString verwenden und diese in TextView verwenden, gibt getText() keine String zurück.