无法将Android错误转换为java.lang.String
在我的应用程序中,我有一个数字键盘,由9个按钮组成。通过一个类,我得到了为字符串选择的数字。 当我试图得到它们时,我得到了错误 立即创建无法将Android错误转换为java.lang.String,android,string,button,Android,String,Button,在我的应用程序中,我有一个数字键盘,由9个按钮组成。通过一个类,我得到了为字符串选择的数字。 当我试图得到它们时,我得到了错误 立即创建 int numberButtons[] = {R.id.b1, R.id.b2, R.id.b3, R.id.b4, R.id.b5, R.id.b6, R.id.b7, R.id.b8, R.id.b9, R.id.b0}; NumberButtonClickListener numberClickLi
int numberButtons[] = {R.id.b1, R.id.b2, R.id.b3,
R.id.b4, R.id.b5, R.id.b6, R.id.b7,
R.id.b8, R.id.b9, R.id.b0};
NumberButtonClickListener numberClickListener = new NumberButtonClickListener();
for (int id : numberButtons) {
View v = findViewById(id);
v.setOnClickListener(numberClickListener);
}
班级:
private class NumberButtonClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
String text = (String) ((Button) v).getText();
setCurrentString(getCurrentString() + text);
}
public void setCurrentString(String s) {
currentString = s;
new_psw.setText(s);
}
public String getCurrentString() {
return currentString;
}
}
错误:
java.lang.ClassCastException: android.text.SpannableString cannot be cast to java.lang.String
在这一行:
String text = (String) ((Button) v).getText();
试试这个:
String text=((按钮)v).getText().toString()代码>尝试以下操作:
String text=((按钮)v).getText().toString()
您的按钮似乎不包含简单的文本,而是一个SpannableString
对象。您可以将返回值强制转换为CharSequence
,而String
和Spannable
都可以在不丢失Spannable标记的情况下实现,或者使用toString()
检索当前内容。您还可以调用按钮。append(getCurrentString())
您想添加一些额外的文本。看起来您的按钮不包含简单的文本,而是一个SpannableString
对象。您可以将返回值强制转换为CharSequence
,而String
和Spannable
都可以在不丢失Spannable标记的情况下实现,或者使用toString()
检索当前内容。您还可以调用按钮.append(getCurrentString())
您想要附加一些文本