gpt4 book ai didi

android - 有没有更好的方法来完成另一个 Activity 的 Activity ?

转载 作者:太空宇宙 更新时间:2023-11-03 13:16:07 27 4
gpt4 key购买 nike

我有 3 个 Activity FirstActivity、SecondActivity 和 ThirdActivity。 FirstActivity 导致 SecondActivity 导致 ThirdActivity。我希望能够在 FirstActivity 和 SecondActivity 、 FirstActivity 和 ThirdActivity 之间来回移动。

这是我实现的:

第一个 Activity :

在 FirstActivity 中,我有一个 onClick 方法“goToSecondActivity”,它会启动 SecondActivity

 public void goToSecondActivity(View view){
Intent i = new Intent(this, SecondActivity.class);
final EditText firstText = (EditText) findViewById(R.id.firstText);
String userMessage = firstText.getText().toString();
if(!"".equals(userMessage))
i.putExtra("firstMessage",userMessage);

startActivity(i);
}

enter image description here

第二个 Activity :

再次在 SecondActivity 中,我有一个 onClick 方法“goToThirdActivity”,它会启动 ThirdActivity

public void goToThirdActivity(View view){
Intent i = new Intent(this , ThirdActivity.class);
startActivity(i);
}

enter image description here

第三 Activity :

在 ThirdActivity 中,我在两个不同的按钮上有两个 onClick 方法“backToFirstActivity”和“backToPreviousActivity”

enter image description here

在 ThirdActivity 上,当我单击“返回第一个 Activity ”按钮时,我想返回到 FirstActivity。

我做了什么:

第二个 Activity :

我已经声明了静态变量

static SecondActivity secondActivityMain;

并在 onCreate 方法中赋值:

protected void onCreate(Bundle savedInstanceState) {
---
---
secondActivityMain = this;
---
---

}

第三 Activity :

使用静态变量完成 SecondActivity "SecondActivity.secondActivityMain.finish();"

 public void backToFirstActivity(View view) {
Toast.makeText(getApplicationContext(), "Third: finished second activity ",
Toast.LENGTH_SHORT).show();

new Handler().postDelayed(new Runnable() {
@Override
public void run() {
SecondActivity.secondActivityMain.finish();
ThirdActivity.this.finish();
}
}, 2000);

}

我的问题是:

<强>1。有没有更好的方法从另一个 Activity 中完成 Activity ?

<强>2。这种方式对吗?

最佳答案

如果您想从 ThirdActivity 转到 FirstActivity,请使用带有标志“FLAG_ACTIVITY_CLEAR_TOP”的此 Intent ,它将清除第三个和第二个 Activity

  Intent intent = new Intent(ThirdActivity.this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

对于 FirstActivity 在 Manifeast 文件中如果指定了 android:launchMode="singleTop"那么当你从 ThirdActivity 到 FirstActivity 时将不会调用 OnCreate() 方法如果您未在 list 文件中指定 lanuhMode,则将再次调用 OnCreate

关于android - 有没有更好的方法来完成另一个 Activity 的 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35796390/

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