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

标签 java android android-intent android-activity

我正在尝试从 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/

相关文章:

Java - 计算大字符串中的音节

android - 如何在整个翻译动画中实现均匀速度?

android - 如何解决 ConcurrentModificationException

java.lang.NumberFormatException : Invalid float: "٠"

android - OverridePendingTransition,当前 Activity 位于顶部

java - 授权 header 未显示在 CURL springdoc-openapi-ui 中

java - Android - 从 URL 解析 JSON 明文返回 null 但连接正常

Android 4 及更高版本,多操作通知

java - 为什么可以从已经关闭的 ByteArrayOutputStream 中读取数据?

java - Android Intent 在电子表格中打开 CSV