第一步:在AndroidManifest.xml注册Activity,
第二步:在对应的xml中,(我这里是about_legal.xml)中添加Preference。
代码:
alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/AndroidManifest.xml

                                                              

alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/res/xml/about_legal.xml

             

这样就可以添加成功了,但是发现一个问题就是Toolbar的字体是Setting,并不是我们写的Preference
的标题,在一级菜单和二级菜单下这样加入是OK的,
但是在Setting->system->about phone->Legal infomation
添加了Neffos Privacy Policy菜单,就有问题了。
一、重新设置title
在网上搜了一下Toolbar如何重新设置Title,发现很多方法都是针对v7包里面的

android.support.v7.widget.ToolbarmActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);setSupportActionBar(mActionBarToolbar);getSupportActionBar().setTitle(“My title”);

这样写的话,编译是报错的,因为在源码中Toolbar使用的widget包下的,

import android.widget.Toolbar;

所以可以直接使用searchActionBar.setTitle(getResources().getString(R.string.neffos_privacy_policy));
来替换Title,但是发现如果写在onCreate()方法中是不起作用的,需要写在onResume()方法中。

@Override    protected void onResume() {        super.onResume();  Toolbar searchActionBar = findViewById(com.android.internal.R.id.action_bar);         if(searchActionBar != null){  searchActionBar.setTitle(getResources().getString(R.string.neffos_privacy_policy));}    }

oncreate 和 onresume 在第一次创建的时候都会执行。但是实际上 oncreate 和 onresume 的确有区别。
oncreate 是当被创建的时候执行, onresume 是被展示的时候执行。比如在栈式管理的方式下,如果不被销毁,
那么oncreate 只会被执行一次, 而 onresume是依照展示机会执行。

二、添加返回按钮

protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);          ActionBar actionBar = getActionBar();          if (actionBar != null) {              actionBar.setDisplayHomeAsUpEnabled(true);              actionBar.setHomeButtonEnabled(true);         }    }

actionBar.setDisplayHomeAsUpEnabled(true)// 给左上角图标的左边加上一个返回的图标
actionBar.setDisplayShowHomeEnabled(true)//使左上角图标是否显示,如果设成false,则没有程序图标,仅仅就个标题,否则,显示应用程序图标,对应id为android.R.id.home

  其中setHomeButtonEnabled和setDisplayShowHomeEnabled共同起作用,如果setHomeButtonEnabled设成false,即使setDisplayShowHomeEnabled设成true,图标也不能点击

//给返回按钮添加点击事件,返回上级目录。

@Overridepublic boolean onOptionsItemSelected(MenuItem item) {if(item.getItemId() == android.R.id.home){finish();}return super.onOptionsItemSelected(item);}

效果图如下:

更多相关文章

  1. android配置开发环境
  2. Android组件 子菜单(SubMenu)
  3. SystemUI 下拉栏快捷键隐藏(一)
  4. 下载、更新Android(安卓)SDK慢的解决方案
  5. Android(安卓)Activity中ActionBar上添加返回功能
  6. 15个重要的Android代码
  7. android仿时间轴
  8. Android(安卓)Bitmap图片缩放优化,用canvas替代Matrix进行缩放,解
  9. 【Android(安卓)开发教程】添加ActionBar物件

随机推荐

  1. 如何将这个div放在旁边?
  2. CSS:UL的/ OL's与Div在IE中左移
  3. 不能让align-self在flexbox容器中工作
  4. 使用response.sendirect("html/employee.
  5. 从html文档中解析数据()[重复]
  6. 如何在离子框架中显示图像标题?
  7. CGI编程学习5 穿插HTML,CSS零星知识
  8. html5结合flash实现视频文件在所有主流浏
  9. DOM笔记(三):Element接口和HTMLElement接口
  10. [原创]基于html5新标签canvas写的一个小