我正在尝试从 Activity 中获取输入的数据。在我的主屏幕上,我开始这样的 Activity :
Intent myIntent = new Intent(this, ContactInfo.class);
startActivityForResult(myIntent, AppState.ACTIVITY_CONTACT_INFO);
在 Activity 中,当用户点击“保存”按钮时,我会触发以下操作:
Intent intent = new Intent();
TextView tvName = (TextView) findViewById(R.id.txtContactName);
intent.putExtra("Name", tvName.getText());
if (getParent() == null) {
setResult(Activity.RESULT_OK, intent);
} else {
getParent().setResult(Activity.RESULT_OK, intent);
}
finish();
在原始 Activity 中,我像这样捕获 onActivityResult
事件:
String contactName = (String) data.getExtras().get("Name");
然而,这一行因 java.lang.ClassCastException: android.text.SpannableString cannot be cast to java.lang.String
而爆炸。我也试过 getStringExtra
得到同样的结果。
我错过了什么?
最佳答案
TextView.getText()
不返回字符串,而是返回您看到的 SpannableString
。请改用 getText().toString()
。
关于java - 为什么我不能通过 Intent 传递数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11041973/