android - Intent 发送不是 Intent 接收

标签 android android-intent extras

所以我试图在选择列表中的项目后启动一个新 Activity ......根据我所读的内容非常基本。我也在尝试在附加功能中发送一个值。所以我可以选择列表中的项目,然后新 Activity 开始,extras 被设置,但是 extras 中的值为空。我注意到新 Activity 的 Intent ID 与第一个 Activity 的 ID 不匹配。不知道该不该。

来自 Activity 1:

public void onItemClick(AdapterView<?> parent, View view,
              int position, long id) {
                  Intent displayIntent = new Intent(getApplicationContext(), DisplayActivity.class);
              int index  = _names.indexOf(((TextView) view).getText());
              displayIntent.putExtra("ID_TAG", ids.get(index));
              startActivity(displayIntent);
          }

在Activity2(DisplayActivity)中

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Bundle extras = getIntent().getExtras(); 
        _hiveIndex = extras.getLong("ID_TAG");
}

为什么我得不到值(value)有什么想法吗? extras下的mMap之前在1st intent中设置为hash map,但在activity2中为null。

最佳答案

Activity1 的 displayIntent.putExtra("ID_TAG", ids.get(index)) 不使用 Bundle 对象,要放置 Bundle 对象,您需要使用 putExtras(Bundle bundle) 方法代替它。因为您正在尝试获取Actvitiy2 中的 Bundle 对象。您在 Activity1 putExtra 方法中传递的不是 Bundle 对象,但是您试图在 Activity2 中获取 Bundle 对象,因此您一无所获。 displayIntent.putExtra("ID_TAG", ids.get(index));替换为 displayIntent.putExtras(您的包对象)

或者您可以使用 getIntExtra(String name, int defaultValue) 方法。

关于android - Intent 发送不是 Intent 接收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6554977/

相关文章:

android - 剪辑列表选择器

java - Android - AutoCompleteTextView 如何将项目附加到始终显示的结果列表?

android - 服务未收到 Intent/额外信息

android - 从 Intent 数据中获取短信地址

android - 访问网络可用性状态android

android - 如何在 SQLite 中使用分页?

android - 为什么 excludeFromRecents 会删除所有 Activity ?

android - 如何从 ListView 中获取选定的值以显示在第二个 Activity 中?

android - 如何使用 Intents 将对象从一个 Android Activity 发送到另一个?

android - 用相机拍照并将路径发送到其他 Activity