提供向上(又名返回)导航 - 使用 UI 片段
Providing Up (aka Back) Navigation - with UI Fragments
Google 文档 Providing Up Navigation 解释了如何在具有 多个 的应用程序中显示 向上按钮活动(通过在 AndroidManifest.xml 中指定 "parent" 活动):
但是我正在开发一个蓝牙应用程序(从 minSdkVersion=18
开始),它有一个 single MainActivity 和 3 个 Fragments:
- MainFragment.java
- SettingsFragment.java
- ScanningFragment.java
所以我将基数 class 更改为 ActionBarActivity
:
public class MainActivity extends ActionBarActivity
implements BleWrapperUiCallbacks {
然后我调用 setDisplayHomeAsUpEnabled(true)
方法:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.activity_root);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
这会在我的应用程序中显示 向上按钮,但是我还有 3 个问题:
- 如何隐藏 向上按钮(当我显示 MainFragment 时)?
- 如何 "wire" 向上按钮 - 当前触摸它没有任何反应?
- 在我的 AndroidManifest.xml 中使用什么代替以下行?
android:theme="@android:style/Theme.Holo.NoActionBar"
我可以通过覆盖此方法来回答提供向上导航的第二个问题:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
Google 文档 Providing Up Navigation 解释了如何在具有 多个 的应用程序中显示 向上按钮活动(通过在 AndroidManifest.xml 中指定 "parent" 活动):
但是我正在开发一个蓝牙应用程序(从 minSdkVersion=18
开始),它有一个 single MainActivity 和 3 个 Fragments:
- MainFragment.java
- SettingsFragment.java
- ScanningFragment.java
所以我将基数 class 更改为 ActionBarActivity
:
public class MainActivity extends ActionBarActivity
implements BleWrapperUiCallbacks {
然后我调用 setDisplayHomeAsUpEnabled(true)
方法:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.activity_root);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
这会在我的应用程序中显示 向上按钮,但是我还有 3 个问题:
- 如何隐藏 向上按钮(当我显示 MainFragment 时)?
- 如何 "wire" 向上按钮 - 当前触摸它没有任何反应?
- 在我的 AndroidManifest.xml 中使用什么代替以下行?
android:theme="@android:style/Theme.Holo.NoActionBar"
我可以通过覆盖此方法来回答提供向上导航的第二个问题:
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}