String s = extras.getString("android.text");
我正在尝试从捆绑中读取值。但我并不完全知道我想要阅读的价值类型。当我尝试使用getString读取它时,我得到以下错误
java.lang.ClassCastException: android.text.SpannableString cannot be cast to java.lang.String
at android.os.BaseBundle.getString(BaseBundle.java:921)
at com.example.myapp.services.NLService.constructNotificationObject(NLService.java:67)
at com.example.myapp.services.NLService.onNotificationPosted(NLService.java:100)
值的类型究竟是什么?我怎样才能以字符串格式获取它?
编辑:
我试图读取的包不是由我创建的。所以我无法控制捆绑中传递的内容。
值的类型是SpannableString,但getString尝试将其强制转换为产生错误的String。
这个问题似乎与this one重复。一种解决方法是执行此操作((SpannableString)extras.get("android.text")).toString()
答案 0 :(得分:0)
您可能已经通过意图传递了SpannableString。您不能将其直接转换为字符串。试试这个
String s = extras.getString("android.text") + "";
答案 1 :(得分:0)
您需要逐行读取文件,并使用StringBuilder
来构建String .login-div{
background: #fff none repeat scroll 0 0;
height: 500px;
left: 50%;
width: 500px;
right: 0;
z-index: 99999;
top: 20%;
position: fixed;
}
如果您认为没有字符编码,则可以更快地读取数据。例如ASCII-7但它没有太大的区别。您对数据的处理很可能需要更长的时间。
一种不太常见的模式,可以避免线路泄漏的范围。
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
sb.append(line);
}
}