我正在尝试将我的应用程序转换为使用v21 AppCompat库,因此我开始使用工具栏而不是ActionBar.在我的所有常规活动(扩展ActionBarActivity)中,一切都很好.但在我的SettingsActivity中扩展了PreferenceActivity,因此我无法使用setSupportActionBar(actionbar)调用,我需要使用"独立"工具栏.工具栏显示,但我无法弄清楚如何将"home/up"按钮添加到工具栏.
SettingsActivity.java:
public class SettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
Toolbar actionbar = (Toolbar) findViewById(R.id.actionbar);
if (null != actionbar) {
// In every other activity that extends ActionBarActivity I simply use:
// setSupportActionBar(actionbar);
// final ActionBar supportActionBar = getSupportActionBar();
// supportActionBar.setDisplayHomeAsUpEnabled(true);
// but in PreferenceActivity you need to add a standalone toolbar:
actionbar.setTitle(R.string.title_activity_settings);
actionbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SettingsActivity.this.finish();
}
});
// Inflate a menu to be displayed in …Run Code Online (Sandbox Code Playgroud) android android-appcompat android-actionbar-compat android-toolbar
我找到了一种解决方法,可以在嵌套的PreferenceScreen上实际启用ActionBar主页按钮...但是它不会在我的PreferenceActivity中调用OnOptionsItemSelected.有人知道在嵌套的PreferenceScreen上实际使用主页按钮的方法吗?
这里修改第35篇:
http://code.google.com/p/android/issues/detail?id=4611
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference)
{
super.onPreferenceTreeClick(preferenceScreen, preference);
if (preference!=null)
if (preference instanceof PreferenceScreen)
if (((PreferenceScreen)preference).getDialog()!=null)
((PreferenceScreen)preference).getDialog().getActionBar().setHomeButtonEnabled(true);
return false;
}
Run Code Online (Sandbox Code Playgroud) java android preferenceactivity sharedpreferences android-actionbar
我正在尝试创建一个PreferenceScreen但我希望Activity设计像整个项目一样.
如何创建自定义PreferenceScreen设计?
我有偏好屏幕扩展PreferenceActivity.对于目标OS 4.0.3,我想<在操作栏上添加图标,所以我这样做了onCreate().
ActionBar actionBar = getActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)
有效.<已添加到应用程序图标的左侧.但是当我点击进入下一级别的项目(更多细节屏幕)时,<将不会显示.回到顶层,<再次出现.
我从未想过嵌套偏好的机制,因为聪明的PreferenceActivity隐藏它.现在我的问题是,为什么不PreferenceActivity显示<嵌套首选项?
我不想争辩说我不需要添加<到首选项屏幕.(即使谷歌的一些应用程序添加,有些也没有,所以我认为没有可靠的规则.)
如果有一个简单的解决方案,我想解决这个问题.
android preferenceactivity android-4.0-ice-cream-sandwich android-actionbar android-homebutton