【问题标题】:Transfer data between Activities with bundle使用捆绑包在活动之间传输数据
【发布时间】:2019-08-31 20:16:36
【问题描述】:

我正在尝试在 android 的两个活动之间传输一些数据。我需要传输一个整数值和一个列表。当我尝试在第二个活动中检索我的值时,它们是空值。我不确定是否应该在onCreate()方法中

这是发送数据的代码。

public void Start(View view) {
        Intent goToNextActivity = new Intent(getApplicationContext(), MainActivity.class);
        Bundle bundle = new Bundle();
        bundle.putParcelableArrayList("topics", (ArrayList<? extends Parcelable>) topicsList);
        bundle.putInt("num_players", num_players);
        startActivity(goToNextActivity);

    }

这是检索数据的代码。

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Bundle extras = getIntent().getExtras();
        num_player = extras.getInt("num_players");
        topics_list = extras.getIntegerArrayList("topics");
    }

我得到一个 NullPointerException

[ERROR] java.lang.NullPointerException: Attempt to invoke virtual method 'int android.os.Bundle.getInt(java.lang.String)' on a null object reference

做我想做的事情的正确方法是什么?

【问题讨论】:

  • 您没有将bundle 放入意图中

标签: java android android-intent bundle


【解决方案1】:

您忘记将捆绑包放入您的意图中

goToNextActivity.putExtra("bunlde",bundle)

或者你可以不用捆绑包来做,只需将你的数据放入意图

【讨论】:

    【解决方案2】:

    正确的代码:

    Intent goToNextActivity = new Intent(getApplicationContext(), MainActivity.class); goToNextActivity .putParcelableArrayList("topics", (ArrayList) topicsList); goToNextActivity .putInt("num_players", num_players); startActivity(goToNextActivity);

    【讨论】:

      猜你喜欢
      • 2011-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-02
      • 2018-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多