在我的应用程序中,我有一个数字小键盘,由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 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();
答案 0 :(得分:2)
试试这个:
TCPDF
答案 1 :(得分:2)
您的Button
似乎不包含简单文本,而是SpannableString
个对象。您可以将返回值强制转换为CharSequence
String
Spannable
,而不会丢失Spannable标记,或使用toString()
来检索当前内容。您也可以致电Button.append(getCurrentString())
想要附加一些其他文字。