使用 bundle 在 Activity 之间传输数据
Transfer data between Activities with bundle
我正在尝试在 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
做我想做的事情的正确方法是什么?
您忘记将捆绑包放入您的意图中
goToNextActivity.putExtra("bunlde",bundle)
或者您可以不使用捆绑包,只需将您的数据放入 intent
正确代码:
Intent goToNextActivity = new Intent(getApplicationContext(), MainActivity.class);
goToNextActivity .putParcelableArrayList("topics", (ArrayList) topicsList);
goToNextActivity .putInt("num_players", num_players);
开始活动(goToNextActivity);
我正在尝试在 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
做我想做的事情的正确方法是什么?
您忘记将捆绑包放入您的意图中
goToNextActivity.putExtra("bunlde",bundle)
或者您可以不使用捆绑包,只需将您的数据放入 intent
正确代码:
Intent goToNextActivity = new Intent(getApplicationContext(), MainActivity.class); goToNextActivity .putParcelableArrayList("topics", (ArrayList) topicsList); goToNextActivity .putInt("num_players", num_players); 开始活动(goToNextActivity);