相关疑难解决方法(0)

如何使用appcompat v21在独立工具栏上启用homeAsUp或调用setDisplayHomeAsUpEnabled()

我正在尝试将我的应用程序转换为使用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

49
推荐指数
4
解决办法
4万
查看次数

操作栏主页按钮无法使用嵌套的PreferenceScreen

我找到了一种解决方法,可以在嵌套的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

25
推荐指数
1
解决办法
6590
查看次数

Android:如何制作自定义PreferenceScreen?

我正在尝试创建一个PreferenceScreen但我希望Activity设计像整个项目一样.

如何创建自定义PreferenceScreen设计?

android preferencescreen

10
推荐指数
2
解决办法
2万
查看次数

在PreferenceActivity和嵌套首选项上设置setHomeButtonEnabled

我有偏好屏幕扩展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

6
推荐指数
1
解决办法
9521
查看次数