我需要在两个活动之间转移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,关于如何解决此问题的任何建议?
答案 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