Android 首选项的实现
2015-06-30 16:00
369 查看
Android 首选项的代码流程
在Android的软件应用中,有些时候我们需要对其设置一些属性,比如:游戏设置,或者播放器设置。这些设置是依照客户自定义的,并不希望每一次启动App都去手动设置,因此我们可以将其设置为首选项供用户选择,这样每一次启动相应的App就不需要重新设置;代码流程如下
先创建一个空的Android Application Project,将activity_main.xml的主布局设置为LinerLayout;并添加一个按钮,效果图如下:在res目录下新建一个名称为xml的目录,在里面新建一个 Android XML File,命名名称全为小写,Resource Typ 选择为Preference,RootElement选择为PreferenScreen,然后finish;
打开代码编辑器,之后可以在里面手动编码添加三个控件,或者在可视化界面中添加,效果如下:
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > <CheckBoxPreference android:key="checkbox" android:summaryOff="已经关闭" android:summaryOn="已经开启" android:title="是否开启" /> <ListPreference android:entries="@array/entries" android:entryValues="@array/values" android:key="list" android:summary="请点击选择" android:title="选择一个选项" /> <EditTextPreference android:dialogTitle="请输入你的名字" android:dialogMessage="麻烦你了么么哒" android:summary="请在这里输入" android:title="请输入" android:key="editText"/> </PreferenceScreen>
在这里,需要注意,无论添加了哪一个控件 ,必须添加一个name属性,因为Preference是采用键值对的,在xml中设置一个Key
在自定义的java文件中实现这三个按钮
新建一个类继承自PreferenceActivity并实现create()方法,在oncreate()方法中获取之前配置好xml文件,并在oncreate()方法中获取到manager();之后可以根据manager获取到三个自定义的首选项public class MyPreferenceActivity extends PreferenceActivity { private PreferenceManager manager; private CheckBoxPreference cbp; private ListPreference list; private EditTextPreference text; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.mypref); manager = getPreferenceManager(); cbp = (CheckBoxPreference) manager.findPreference("checkbox"); Toast.makeText(getApplicationContext(), "当前的状态为:"+cbp.isChecked(), Toast.LENGTH_SHORT).show(); list = (ListPreference) manager.findPreference("list"); Toast.makeText(getApplicationContext(),list.getEntry()+ "当前的开发环境:"+list.getValue(), Toast.LENGTH_SHORT).show(); text = (EditTextPreference) manager.findPreference("editText"); Toast.makeText(getApplicationContext(),"当前的文字描述为:"+text.getText(), Toast.LENGTH_SHORT).show(); } }
除了CheckBoxPreference和EditTextPreference外,ListPreference需要单独设置用于选择的values,在res目录下的value目录下新建一个Android XML File并在RootElement选择为Resource,之后再里面添加
<string-array ></string-array>
这个属性
xml配置如下:
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="entries"> <item>java</item> <item>Swift</item> <item>C#</item> <item>C++</item> </string-array> <string-array name="values"> <item>Eclipse</item> <item>Xcode</item> <item>Visual Studio</item> <item>Visual Studio</item> </string-array> </resources>
之后就可以运行程序了。哇哈哈,效果图我就不贴了哇哈哈。如果运行会报错的话,原因可能是:没有在AndroidManifest.xml添加自定义的继承PreferenceActivity的类;添加完后应该不会再出现其他啥问题了
啊塔塔那库吗。。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories