我有 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);
}
第二个 Activity :
再次在 SecondActivity 中,我有一个 onClick 方法“goToThirdActivity”,它会启动 ThirdActivity
public void goToThirdActivity(View view){
Intent i = new Intent(this , ThirdActivity.class);
startActivity(i);
}
第三 Activity :
在 ThirdActivity 中,我在两个不同的按钮上有两个 onClick 方法“backToFirstActivity”和“backToPreviousActivity”
在 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/