Android Go 8.1.0 在Setting中菜单中添加条目

第一步:在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.Toolbar
mActionBarToolbar = (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,图标也不能点击

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

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

效果图如下:
Android Go 8.1.0 在Setting中菜单中添加条目_第1张图片

你可能感兴趣的:(Android)