所以,我一直在研究getText()方法,并且我已经了解到它返回了CharSequence。 所以你不能这样做:
TextView myTextView = (TextView) findViewById(R.id.my_text_view);
String myString = myTextView.getText();
相反,必须通过执行以下操作将返回的CharSequence转换为String:
TextView myTextView = (TextView) findViewById(R.id.my_text_view);
String myString = myTextView.getText().toString();
我的问题出现了:你不能这样做吗?:
TextView myTextView = (TextView) findViewById(R.id.my_text_view);
String myString = (String) myTextView.getText();
我已经在我的代码中尝试了这个并且它工作得非常好,但是每个人似乎都在使用第一种方式..所以有一个问题我没有看到我的方式吗?或者它只是一种不同的方式,如果是这样,两种方式的好处是什么?
提前感谢您的回答:)
答案 0 :(得分:11)
那么有什么问题我没有看到我这样做的方式吗?
如果返回的ClassCastException
不是CharSequence
,则会因String
而崩溃。例如,如果您使用Html.fromHtml()
或其他方式创建SpannedString
,并在TextView
中使用该方法,则getText()
将不会返回String
。< / p>