为了账号安全,请及时绑定邮箱和手机立即绑定

Android Studio:活动仅在您第二次调用 finish() 时完成

Android Studio:活动仅在您第二次调用 finish() 时完成

温温酱 2021-11-17 10:28:06
所以,我们在学校处理意图,当我尝试将数据从“Activity2”传递到“Activity1”时,当我执行 setResult() 和其他东西时,我遇到了意图问题。问题是当我第一次触发事件时它不会回到第一个活动,但它会第二次。我只在 Android Studio 工作了大约 12 小时,所以我真的缺乏很多理解。这是我在做什么:首先,我称这种形式为主要活动。public void CheckPassword(View view) {        password = PasswordManagement.getPassword(this);        TextView txtPassword = findViewById(R.id.txtPassword);        if (txtPassword.getText().toString().equals(password)) {            Intent intent;            intent = new Intent(this, WelcomeActivity.class);            intent.putExtra("password", password);            startActivityForResult(intent, 1);            startActivity(intent);        } else {            Intent intent;            intent = new Intent(this, RestrictedActivity.class);            startActivityForResult(intent, 1);            startActivity(intent);        }    }然后,当我完成第二个活动时,我运行这个:protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_restricted);        lblRestrictedArea = findViewById(R.id.lblRestrictedArea);        lblRestrictedArea.setOnLongClickListener(                new OnLongClickListener() {                    public boolean onLongClick(View view) {                        intent = new Intent();                        intent.putExtra(EXTRA_RESPONSE, true);                        setResult(RESULT_OK, intent);                        finish();                        return false;                    }                });    }如果有人可以提供帮助,我会很高兴,同时我会尝试自己解决。谢谢!
查看完整描述

1 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

您正在调用 startActivity 两次。所以有两个相同的实例,Activity然后你必须完成两次。


让您startActivityForResult(...)和删除startActivity在CheckPassword(View view)


->


public void CheckPassword(View view) {

    password = PasswordManagement.getPassword(this);

    TextView txtPassword = findViewById(R.id.txtPassword);


    if (txtPassword.getText().toString().equals(password)) {

        Intent intent;

        intent = new Intent(this, WelcomeActivity.class);

        intent.putExtra("password", password);

        startActivityForResult(intent, 1);

        // startActivity(intent);

    } else {

        Intent intent;

        intent = new Intent(this, RestrictedActivity.class);

        startActivityForResult(intent, 1);

        //startActivity(intent);

    }

}

另外,请注意您requestCode对两个不同的活动使用相同的(1)。该requestCode是很重要的onActivityResult方法。


查看完整回答
反对 回复 2021-11-17
  • 1 回答
  • 0 关注
  • 203 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信