繁体   English   中英

在活动之间传输int不能正常工作

[英]Transfering int between activities does not work correctly

我需要在2个活动之间转移User和int,这发生在单击列表视图活动1中的项目时:

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

该位置是通过取消用户单击的项目的编号来实现的。log.d确实显示了当前位置,但是当我尝试在活动2中获取该Int时,其始终为0。

在活动2中:

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

此log.d始终显示为0。尽管用户传输良好。

编辑

我发现它与清单中的android:launchMode =“ singleTask”有关,由于某种原因,该活动打开两次,一个很好打开,一个由于某种原因而打开,且多余的“ serverNum”等于0,关于如何解决这个问题?

在练习2中尝试此操作。

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

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

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

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

}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM