工具栏后退按钮和onBackPressed方法的区别
Difference between toolbar back button and onBackPressed method
我有一个有多个活动的应用程序。一个例子是我的 MainActivity
,它显示了一个项目列表,您可以从中打开某个项目的 "detail" 概览。
单击一个项目打开它后,我会像这样打开另一个 activity
final Intent intent = new Intent(getApplicationContext(), AddActivity.class);
getApplicationContext().startActivity(intent);
在工具栏中打开 activity 后,我有一个后退按钮。我想那个按钮是开箱即用的,因为我使用的是 android.support.v7.widget.Toolbar
.
万一我在 MainActivity
上滚动了很远的列表然后决定打开一个新的 activity 然后在那个新的 activity 我点击工具栏后退按钮我是 returned 到 MainActivity
但它已刷新(它的 OnCreate 方法被调用)。
如果我打开第二个 activity 并且它有一个执行某些操作的按钮,最后 return 将您转到 MainActivity 从 FragmentActivity
调用 onBackPressed()
已扩展(通过扩展 AppCompatActivity
),它会 return 你到 MainActivity
但没有任何刷新你将能够继续你停止的地方。
我的问题是是否可以用此 onBackPressed()
行为替换工具栏后退按钮的当前行为?
我成功了。我需要做的就是覆盖 onSupportNavigateUp
以便在两个按钮上获得相同的行为。
@Override
public boolean onSupportNavigateUp() {
onBackPressed(); // one inherited from android.support.v4.app.FragmentActivity
return false;
}
您只需覆盖 onbackPressed 方法并在单击工具栏后退按钮时调用该方法即可。
@Override
public void onBackPressed() {
super.onBackPressed()
}
单击该按钮时调用它。
我有一个有多个活动的应用程序。一个例子是我的 MainActivity
,它显示了一个项目列表,您可以从中打开某个项目的 "detail" 概览。
单击一个项目打开它后,我会像这样打开另一个 activity
final Intent intent = new Intent(getApplicationContext(), AddActivity.class);
getApplicationContext().startActivity(intent);
在工具栏中打开 activity 后,我有一个后退按钮。我想那个按钮是开箱即用的,因为我使用的是 android.support.v7.widget.Toolbar
.
万一我在 MainActivity
上滚动了很远的列表然后决定打开一个新的 activity 然后在那个新的 activity 我点击工具栏后退按钮我是 returned 到 MainActivity
但它已刷新(它的 OnCreate 方法被调用)。
如果我打开第二个 activity 并且它有一个执行某些操作的按钮,最后 return 将您转到 MainActivity 从 FragmentActivity
调用 onBackPressed()
已扩展(通过扩展 AppCompatActivity
),它会 return 你到 MainActivity
但没有任何刷新你将能够继续你停止的地方。
我的问题是是否可以用此 onBackPressed()
行为替换工具栏后退按钮的当前行为?
我成功了。我需要做的就是覆盖 onSupportNavigateUp
以便在两个按钮上获得相同的行为。
@Override
public boolean onSupportNavigateUp() {
onBackPressed(); // one inherited from android.support.v4.app.FragmentActivity
return false;
}
您只需覆盖 onbackPressed 方法并在单击工具栏后退按钮时调用该方法即可。
@Override
public void onBackPressed() {
super.onBackPressed()
}
单击该按钮时调用它。