所以我有3项活动:firstlog
,解释,mapsactivity
。当应用程序打开时,它会转到firstlog
,然后解释mapactivity
然后firstlog
,当它在那里时,我希望它能够实现,以便当您从{{1它会将您转移到地图活动。所以我尝试传递一个值,然后使用共享首选项保存它,值始终为firstlog
...尝试在地图中保存null
并在sharedpref
中检查,始终为默认值。我在活动之间传递后尝试放firstlog
,结果仍然相同。我尝试将finish()
放入清单和同样的交易中。
这是我从地图
nohistory
的代码
firstlog
这是我从Intent intent = new Intent(MapsActivity.this,FirstLog.class);
intent.putExtra("EXTRA_SESSION_ID", 1);
startActivity(intent);
firstlog
答案 0 :(得分:0)
问题是,您传递Integer
并尝试获取String
老兄?
在获得额外的Int时使用它。
int i = getIntent().getIntExtra("EXTRA_SESSION_ID");
你应该注意类型转换,因为android为不同的数据类型提供了不同的方法。
答案 1 :(得分:0)
问题是你在意图中传递 int 并检索字符串
您应该使用int s = getIntent().getIntExtra("EXTRA_SESSION_ID", defaultValue)
代替
String s = getIntent().getStringExtra("EXTRA_SESSION_ID");
代码:
SharedPreferences sharedPref = this.getSharedPreferences("isfirsttime", Context.MODE_PRIVATE);
if(getIntent().hasExtra("EXTRA_SESSION_ID"){
int s = getIntent().getIntExtra("EXTRA_SESSION_ID",1);
if(s==1)
{
sharedPref.edit().putBoolean("isfirsttime",false);
Log.i("firsttime","NOT FIRST TIME");
}
else
{
Log.i("firsttime","FIRST TIME");
Log.i("firsttime","intent value equals: " + s);
}
}
if(sharedPref.getBoolean("isfirsttime",true)) {
startActivity(new Intent(this, explanationscreen.class));
finish();
}
else
{
startActivity(new Intent(this, MapsActivity.class));
finish();
}