android– 如何在PreferenceActivity中添加ToolBar?

android– 如何在PreferenceActivity中添加ToolBar?,第1张

概述我想在Android应用程序中的PreferenceActivity中添加ToolBar.我写了以下代码.publicclassSettingsActivityextendsPreferenceActivity{SendSMSsms;protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);addPreference

我想在Android应用程序中的PreferenceActivity中添加Toolbar.我写了以下代码.

  public class SettingsActivity extends PreferenceActivity  { SendSMS sms;protected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    addPreferencesFromresource(R.xml.settings);    linearLayout root = (linearLayout)findVIEwByID(androID.R.ID.List).getParent().getParent().getParent();    androID.support.v7.Widget.Toolbar bar = (androID.support.v7.Widget.Toolbar) LayoutInflater.from(this).inflate(R.layout.action_bar_setting, root, false);    root.addVIEw(bar, 0);    bar.setNavigationOnClickListener(new VIEw.OnClickListener() {        @OverrIDe        public voID onClick(VIEw v) {            onBackpressed();        }    });

}

这在我的机器人Kitkat手机API 19中完美地工作但是在API级别10中强制关闭,即姜饼.请建议我.

解决方法:

你需要一个包含工具栏的布局,以及一个带有androID:ID =“@ androID:ID / List”的ListVIEw

activity_settings.xml

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:ID="@ID/content_frame"    androID:orIEntation="vertical" androID:layout_wIDth="match_parent"    androID:layout_height="match_parent">    <androID.support.v7.Widget.Toolbar        androID:ID="@ID/toolbar"        androID:layout_height="wrap_content"        androID:layout_wIDth="match_parent"        androID:minHeight="?attr/actionbarSize"        androID:background="?attr/colorPrimary" />    <ListVIEw        androID:ID="@androID:ID/List"        androID:layout_wIDth="match_parent"        androID:layout_height="wrap_content" /></linearLayout>

SettingsActivity.java

public class SettingsActivity extends PreferenceActivity {    private AppCompatDelegate mDelegate;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        getDelegate().installVIEwFactory();        getDelegate().onCreate(savedInstanceState);        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_settings);        setSupportActionbar((Toolbar) findVIEwByID(R.ID.toolbar));        addPreferencesFromresource(R.xml.preferences);        ...    }    @OverrIDe    protected voID onPostCreate(Bundle savedInstanceState) {        super.onPostCreate(savedInstanceState);        getDelegate().onPostCreate(savedInstanceState);    }    @OverrIDe    public voID setContentVIEw(@LayoutRes int layoutResID) {        getDelegate().setContentVIEw(layoutResID);    }    @OverrIDe    protected voID onPostResume() {        super.onPostResume();        getDelegate().onPostResume();    }    @OverrIDe    protected voID onStop() {        super.onStop();        getDelegate().onStop();    }    @OverrIDe    protected voID onDestroy() {        super.onDestroy();        getDelegate().onDestroy();    }    private voID setSupportActionbar(@Nullable Toolbar toolbar) {        getDelegate().setSupportActionbar(toolbar);    }    private AppCompatDelegate getDelegate() {        if (mDelegate == null) {            mDelegate = AppCompatDelegate.create(this, null);        }        return mDelegate;    }    ...}

看看我的完整工作示例:

> activity_settings.xml
> SettingsActivity.java

来自AndroID团队的参考:AppCompatPreferenceActivity

总结

以上是内存溢出为你收集整理的android – 如何在PreferenceActivity中添加ToolBar?全部内容,希望文章能够帮你解决android – 如何在PreferenceActivity中添加ToolBar?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1102179.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存