
我想在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?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)