在我的应用中,我有三个活动
活动1
活动2
活动3
如何在活动之间切换。
那怎么办呢?
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.settingOpt:
Intent intent = new Intent(this, SettingsForm.class);
this.startActivity(intent);
this.finish();
break;
case R.id.reminderOpt:
Intent intentR = new Intent(this, ReminderForm.class);
this.startActivity(intentR);
break;
case R.id.helpOpt:
Intent intentH = new Intent(this, HelpForm.class);
this.startActivity(intentH);
this.finish();
break;
case R.id.shareOpt:
Intent share = new Intent(android.content.Intent.ACTION_SEND);
share.setType("text/plain");
share.putExtra(Intent.EXTRA_SUBJECT, "Name of the thing to share");
share.putExtra(Intent.EXTRA_TEXT, "www.gmail.com");
startActivity(Intent.createChooser(share, "Share LoveCycle's website link with your friends"));
break;
default:
return super.onOptionsItemSelected(item);
}
return true;
}
答案 0 :(得分:2)
对于第一个问题
在调用活动3后,在活动2中使用finish()。
您应该在按下主页按钮时关闭应用程序。因为您的应用程序将保持其状态,直到它关闭。
答案 1 :(得分:2)
当我从Activity3单击后退按钮时,我应该总是转到Activity1,而不是Activity2:
在Activity3中的后退按钮事件中使用以下方法:
setResult(R.id.common_backToActivity1);
在Activity2中捕获setResult如下并关闭此Activity:
protected void onActivityResult(int requestCode, int resultCode,Intent data) {
switch(resultCode){
case R.id.common_backToActivity1:
closeActivity(); //Finish Activity2 in this method
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
然后你将直接进入Activity1。
答案 2 :(得分:1)
尝试这样的事情:
Home Key
您无法控制Home键的行为。当按下Home键时,您的应用程序将被发送到后台,当您再次启动应用程序时,它将进入您离开的状态。但是这种行为并不一致,因为它依赖于设备。设备可以finish()
您的应用,如果它需要内存或您的应用正在使用的任何资源。
for your activity:
使用startActivityForResult()启动活动3并按下finish()
活动3,当您在活动2 onActivityResult()
的{{1}}中接听电话时,您将返回活动1.
答案 3 :(得分:0)
第一个问题。您可以覆盖后退按钮并检查您当前所处的活动,并根据该活动处理去处。
关于你的第二个问题。
将android:clearTaskOnLaunch="true"
放入清单文件中的启动活动中。这将使您的应用程序在重新启动时始终重新开始。
答案 4 :(得分:0)
您应该实现您的Intent调用以遵循此操作。您不应该从活动2移动到活动3,而应该完成活动2并返回一些值,提示活动1然后调用活动3.至于当您按下主页时,将相同的代码添加到OnResume()OnCreate()区域这样它就知道总是加载哪个intent / Activity。