android preference_android sdk

android preference_android sdk在使用android手机的时候,尤其是在操作软件设置时,我们经常见到这样的界面:这是怎么来实现的的呢?其实android已经提供了相应的类和方法,当进行简单数据存储时(比如:软件配置参数)android推荐使用Preferences,当然如果想提供操作界面的话就要用到PreferencesActivity。我这里先做个小例子对来简单说明一下使用方法,由于没做准备,可能讲的不系统,以后补上。

在使用android手机的时候,尤其是在操作软件设置时,我们经常见到这样的界面:

android preference_android sdk

这是怎么来实现的的呢?其实android已经提供了相应的类和方法,当进行简单数据存储时(比如:软件配置参数)android推荐使用Preferences,当然如果想提供操作界面的话就要用到PreferencesActivity。我这里先做个小例子对来简单说明一下使用方法,由于没做准备,可能讲的不系统,以后补上。

首先:新建一个android工程,在其res文件夹下新建一个xml文件夹,用来存储我们的PreferencesActivity需要展示的界面。

然后在xml文件夹下新建一个xml文件,名字随意去,这里我建的名字叫:setting.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
  xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory android:title="分组一">  
      <Preference   
       android:key="Already"   
       android:title="本地"   
       android:summary="管理本地"/>  
   </PreferenceCategory> 
	
	<PreferenceCategory
	android:title="分组二">
	<ListPreference 
	android:key="CellCount"
	android:title="行列数选择"
	android:defaultValue="3"
	android:entries="@array/settings_cell_count"
	android:entryValues="@array/settings_cell_values"
	/>
	</PreferenceCategory>
	
	<PreferenceCategory
		android:title="@string/settings_cat_drawer">
		<ListPreference
			android:key="CurrentDrawerSortOrder"
			android:title="@string/settings_drawer_sorting" 
			android:defaultValue="1"
			android:entries="@array/settings_sorting_names" 
			android:entryValues="@array/settings_sorting_values" />
			
		<CheckBoxPreference 
		android:title="CheckBox" 
		android:summary="check!!!!!!!!!!" 
		android:key="check"></CheckBoxPreference>
		
		<EditTextPreference 
		android:title="EditText" 
		android:summary="edit!!!!!!!!!!" 
		android:key="edit"></EditTextPreference>
	</PreferenceCategory>
</PreferenceScreen>

当然titl之类的名字都可以采用”@string/settings_drawer_sorting”的方式引用我们自己定义的名字,这里为了简单直接写上去了(不推荐)。title是上面亮白的大字,summary是title下面的小字说明,字数不要太多啊,它的显示空间是固定的,多了也显示不出来。

里面填充的数据我就不写了,应该都会的吧,不会的可以自己百度一下android array的使用与定义吧。

 

那么,我们怎么把这个xml显示出来呢?

需要新建一个Activity继承PreferencesActivity,下面是具体代码:

package com.preference.demo;

import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceScreen;
import android.util.Log;

public class PreferenceDemo extends PreferenceActivity{
	static final String MANAGER_LOCATION_THEME= "Already";//组件的key值,要对应啊
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		this.addPreferencesFromResource(R.xml.setting);//引入我们的xml
	}

	@Override
	public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
			Preference preference) {
		// TODO Auto-generated method stub
                   String key=preference.getKey();//获取当前触发动作组件的key值
		
		if(key.equals(MANAGER_LOCATION_THEME)){//根据key值不同进行自己的操作,这里只是拦取了一个做个示例
			Log.i("xml","already_exsting_theme");
	
		}
       
		return super.onPreferenceTreeClick(preferenceScreen, preference);
	}

}
//我只是打印了一下log,结果如下图:

运行效果图如下:

android preference_android sdk

点击本地打印log,log截图:
android preference_android sdk

我们还可以在需要的地方读取xml里的值,我会在后续的文章里说一下,如果等不及的可以自己百度一下Preferences的使用,我们自己写的xml实际上就是Preferences的使用,其数据的读取方式是一样的。

 

该文章写得过于仓促,内容很简陋,如果有什么错误或表达不当的地方请留言,一定改,拜谢各位。

今天的文章android preference_android sdk分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/57809.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注