为什么我不能通过Intent传递数据?

Ang*_*ker 4 java android android-intent android-activity

我试图从活动中获取输入的数据.从我的主屏幕,我开始这样的活动:

Intent myIntent = new Intent(this, ContactInfo.class);
startActivityForResult(myIntent, AppState.ACTIVITY_CONTACT_INFO);
Run Code Online (Sandbox Code Playgroud)

在活动中,当用户点击"保存"按钮时,我将触发以下内容:

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();
Run Code Online (Sandbox Code Playgroud)

在原始活动中,我抓住了onActivityResult这样的事件:

String contactName = (String) data.getExtras().get("Name");
Run Code Online (Sandbox Code Playgroud)

然而,这条线爆炸了java.lang.ClassCastException: android.text.SpannableString cannot be cast to java.lang.String.我也尝试getStringExtra过相同的结果.

我错过了什么?

zmb*_*mbq 13

TextView.getText()不会返回一个字符串,而是SpannableString你看到的.请getText().toString()改用.