2017-01-24 12 views
6

Tak więc, szukałem metody getText() i dowiedziałem się, że zwraca ona CharSequence. więc nie można po prostu to zrobić:getText(). ToString() vs (String) getText()

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

i zamiast mieć do konwersji zwrócony CharSequence do łańcucha w ten sposób:

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

Nadchodzi moje pytanie: można nie tylko zamiast to zrobić ?:

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

próbowałem to w moim kodu i zadziałało perfekcyjnie, ale każdy wydaje się być za pomocą pierwszego sposobu .. Więc jest jakiś problem nie widzę z mojej drodze z robić to? Czy jest to po prostu inny sposób na zrobienie tego, a jeśli tak, jakie są zalety obu sposobów?

Dzięki za odpowiedzi z góry :)

Odpowiedz

10

Więc jest jakiś problem nie widzę z mojego sposób to robi?

Będzie on upaść z ClassCastException jeśli CharSequence, który jest zwracany nie jest String. Na przykład, jeśli użyjesz Html.fromHtml() lub innych sposobów tworzenia SpannedString i użyjesz tego w TextView, getText() nie zwróci String.

Powiązane problemy