如何在活动之间切换

时间:2011-10-17 06:48:12

标签: android android-activity

在我的应用中,我有三个活动

  1. 活动1

  2. 活动2

  3. 活动3

  4. 如何在活动之间切换。

    那怎么办呢?

     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;
    }
    

5 个答案:

答案 0 :(得分:2)

对于第一个问题

  1. 在调用活动3后,在活动2中使用finish()。

  2. 您应该在按下主页按钮时关闭应用程序。因为您的应用程序将保持其状态,直到它关闭。

答案 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。