在活动之间转移int无法正常工作

时间:2017-01-15 17:02:32

标签: java android android-studio android-intent extras

我需要在两个活动之间转移User和int,当点击listview中的项目时会发生这种情况, 活动1:

Intent intent = new Intent(GameActivity.this,ServerActivity.class);
intent.putExtra("serverNum",position);
intent.putExtra("currentUser",currentUser);
Log.d("position", position + "");
startActivity(intent);
finish();

该位置是defult用户点击的项目的数量,log.d确实显示了当前位置,但是当我尝试在活动2中获取该Int时,它始终为0。

在活动2中:

Log.d("Server Number",getIntent().getExtras().getInt("serverNum")+"");

此log.d始终显示0。 用户转移得很好。

修改

我发现它与android有关:launchMode =" singleTask"在清单中,由于某种原因,活动打开两次,一个打开很好,一个由于某种原因打开额外的" serverNum"等于0,关于如何解决此问题的任何建议?

3 个答案:

答案 0 :(得分:1)

在活动2中尝试此操作。

int id=getIntent().getIntExtra("serverNum", 0);

Log.d("ServerNumber",id+"");

答案 1 :(得分:0)

尝试覆盖方法并检查那里的值

@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
int id=intent.getIntExtra("serverNum", 0);
Log.d("ServerNumber",id+"");
setIntent(intent);

}

答案 2 :(得分:0)

你应该摆脱android:launchMode="singleTask"。原因是这只创建了一个活动实例。回到它之后,它会将额外值重置为0.在这里,您可以阅读启动类型:https://inthecheesefactory.com/blog/understand-android-activity-launchmode/en