在Android中,设置Settings一直都是header+fragment的形式出现。例如设置里面的“时间和日期”项,在settings_hesder.xml中其布局大概是这样:

    

   

这是典型的一个设置中的选项,DateTimeSettings.java 继承了Fragment。

     所以要添加一个选项,模仿即可。

     本例中以添加一个“老人模式”选项为例,为连线到一个APP中,即点击此选项将跳转到相对应的APP。只需这个应用的包名和类名,我们就可以把它嵌入到设置Settings中。

     1、首先在settings_hesder.xml中添加选项

     其中,com.hll.haolauncher是目标应用的包名。


     2、在SettingsActivity.java中添加该选项显示

// Show only these settings for restricted usersprivate int[] SETTINGS_FOR_RESTRICTED = {            R.id.wireless_section,            R.id.wifi_settings, ......            R.id.aged_mode_setting_new    };

      3、找到updateHeaderList方法,更新Settings选项的状态,代码大概如下:   

private void updateHeaderList(List
target) { PDebug.Start("updateHeaderList"); int i = 0; mHeaderIndexMap.clear(); while (i < target.size()) { Header header = target.get(i); int id = (int) header.id; if (id == R.id.bluetooth_settings) { if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)) { target.remove(i); } } else if (id == R.id.battery_settings) { if (!mBatteryPresent) { target.remove(i); } }else if(id==R.id.aged_mode_setting) { if (enable){ target.remove(header); } } PDebug.End("updateHeaderList");}
 一些选项的显示或隐藏将被写到这里面。


       4、设置Settings中的点击事件被写在onHeaderClick方法中,如下:

if (header.id ==R.id.aged_mode_setting_new)       {         Intent mIntent = new Intent();         mIntent.setClassName("com.hll.haolauncher","com.hll.elauncher.StartActivity");  mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);         startActivity(mIntent);             return;        }

过程基本上是如此,由于笔者手上的代码不是原生系统的源码,不能把多一些的源码贴上,其中可能与原生代码有些出入,但大同小异,大都数地方还是相同的。




更多相关文章

  1. Android高手进阶教程(六)之----Android(安卓)中MenuInflater的使
  2. Android运行显示 Android(安卓)Device Chooser为空
  3. Android(安卓)for OpenCV 调用 CameraAPI 1 实现人脸检测
  4. Android(安卓)使用Settings 数据库demo(源码)以及adb 读写settings
  5. Android(安卓)屏幕适配之屏幕分辨率(创建不同dimen)适配
  6. N 个 Android(安卓)项目源码
  7. Android(安卓)Studio安装过程中出现Failed to install Intel HAX
  8. 如何去写Android(安卓)init.rc
  9. Android(安卓)ril移植-6410开发板SIM300模块

随机推荐

  1. c++11 + SDL2 + ffmpeg +OpenAL + java =
  2. Android常用的intent action汇总
  3. android-pluginmgr不需要插件规范的apk动
  4. Log分析
  5. Android之ArrayAdapter用法总结
  6. LXR 索引Android 源码
  7. 专题 - Web应用
  8. App测试中ios和Android的区别
  9. Android隐藏输入法自带的输入框,将输入框
  10. Android Intent调用方法总结