gpt4 book ai didi

java - 如何导航回 Activity 并重新启动它?

转载 作者:行者123 更新时间:2023-12-02 09:27:22 25 4
gpt4 key购买 nike

我有MainActivity和SubActivity,MainActivity用代码启动SubActivity:

    startActivity(new Intent(getApplicationContext(), SubActivity.class));
overridePendingTransition(R.anim.slide_up, R.anim.no_animation);

然后我在 SubActivity 中做了一些事情,之后我必须使用自定义动画返回到 MainActivity。我还需要一种在返回 MainActivity 时更新它的方法。这是从 SubActivity 导航回 MainActivity 的代码,它根本不起作用:

    Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.no_animation, R.anim.slide_down);
finish();

如果我打电话:

    finish();
overridePendingTransition(R.anim.no_animation, R.anim.slide_down);

动画已应用,我返回到启动 SubActivity 的未更改的 MainActivity。

如果我打电话:

    Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.no_animation, R.anim.slide_down);

MainActivity 已重新创建,但我没有动画,而且我不知道之前启动 SubActivity 的 MainActivity 发生了什么。

finish() 方法的描述如下:

 *Call this when your activity is done and should be closed.  The
* ActivityResult is propagated back to whoever launched you via
* onActivityResult().

但我不知道如何使用这个 ActivityResult 来更新我的 MainActivity。

如何使用动画(仅适用于 finish())返回 MainActivity,并在返回时更新它?

最佳答案

使用以下方式启动子 Activity :

    Intent intent = new Intent(getApplicationContext(), SubActivity.class);
startActivityForResult(intent, REQUEST_CODE);
overridePendingTransition(R.anim.slide_up, R.anim.no_animation);

当您想返回主要 Activity 时:

    Intent intent = new Intent();
intent.putExtra("extra_data", "from subactivity");
setResult(Activity.RESULT_OK, intent);
finish();
overridePendingTransition(R.anim.no_animation, R.anim.slide_down);

在mainactivity中使用此方法来获取子activity发送的数据:

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

if (requestCode == REQUEST_CODE) {

if (resultCode == Activity.RESULT_OK) {
String result = data.getStringExtra("extra_data");
// do something with the result

} else if (resultCode == Activity.RESULT_CANCELED) {
// some stuff that will happen if there's no result
}
}
}

关于java - 如何导航回 Activity 并重新启动它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58248542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com