Intent.putExtra无法将数据传递给新活动,但Bundle.putString每次都能正常工作

时间:2017-05-01 09:14:26

标签: android android-intent android-bundle

我有一个特殊的问题。

从我的主要活动中,我将一个字符串放入一个意图并将其传递给一个活动,屏幕保持空白。但是,如果我按下后退按钮并打开相同的活动,则可以正常加载。

gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    Intent intent = new Intent(view.getContext(),ListingActivity.class);
                    intent.putExtra("rss-url",section.get(position).RssUrl);
                   startActivity(intent,bundle);
            }
    });

但是,如果我将相同的网址放入捆绑包并将其传递给同一活动,而不是intent.putExtra,那么一切正常,列表会按预期显示。

  bundle.putString("rss-url",section.get(position).RssUrl);
  startActivity(intent,bundle);

这让我非常困惑。当第二次加载或旋转屏幕时,为什么启动活动的列表加载都正常。

虽然我通过使用捆绑包解决了我的问题,但我真的很想知道为什么intent.putextra不起作用。非常感谢任何帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

在通过intent.putExtra传递额外内容时,不需要在startActivity()中传递bundle,如下所示:

gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    Intent intent = new Intent(view.getContext(),ListingActivity.class);
                    intent.putExtra("rss-url",section.get(position).RssUrl);
                    startActivity(intent);
            }
    });