android如何完成其​​他活动的活动 [英] android how to finish an activity from other activity

查看:23
本文介绍了android如何完成其​​他活动的活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的应用中,我有 3 个活动.

In my app i have 3 activities.

从第 1 个活动到第 2 个,从第 2 个活动到第 3 个.从 3 日开始,它又回到了 1 日.如果我从 1 号开始按后退键,它应该会转到主屏幕(应用程序将停止).如果我按下第一个的返回键,它会再次进入第二个活动,如果我按下第二个的返回键,它就会进入第一个.然后,如果我按下第一个的返回键,则应用程序停止.

From 1st activity it goes to 2nd and from 2nd it goes to 3rd. From 3rd it is coming to 1st again. and if I press back key from the 1st then it should go to home screen (App will stop). If I press back key of 1st its goes to 2nd activity again and if I press 2nd's back key, then it goes to the 1st . Then if I press back key of 1st then app stops.

我想要的是,当我在第 3 个活动中按后退按钮时,它应该转到第 1 个并同时完成第 2 个活动.

What I want , when I am in 3rd activity and press the back button then it should go to 1st and simultaneously finish the 2nd activity.

我该怎么做?

推荐答案

当你打开第三个活动时,只需完成第二个活动

just finish the second activity when you open third activity

假设在点击某个按钮的第二个活动中,您正在使用启动活动打开第三个活动;

suppose in second activity on some button click you are opening third activity using start activity;

startActivity(intent);
finish();//this will finish second activity and open third activity so when you press back from third activity it will open first activity.

如果你想依赖于某种条件,那么就依赖于活动

if you want depended on some condition then on activity

setResult(123);

类似这样的代码

现在当在第二个活动中覆盖 onActivityResult 时

now when override onActivityResult in second activity

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode==123){
            //finish
        }
    }

还要确保你需要使用 startActivityForResult(intent, requestCode);导致第二个活动开始第三个活动.

also make sure one thing you need to use startActivityForResult(intent, requestCode); for result in second activity to start third activity.

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Activity2 extends Activity{

    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main1);

        button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                startActivityForResult(new Intent(new Intent(Activity2.this,Activity3.class)), 12);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        if(resultCode==123 && requestCode==12){
            finish();
        }
        super.onActivityResult(requestCode, resultCode, data);
    }
}


import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Activity3 extends Activity{

    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main1);
        button.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                setResult(123);
            }
        });
    }
}

这篇关于android如何完成其​​他活动的活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆