现在的位置: 首页 > 综合 > 正文

[Android实例] preferenceActivity的用法

2018年02月10日 ⁄ 综合 ⁄ 共 3584字 ⁄ 字号 评论关闭
首先让大家看图  看到这张图是 不是很熟悉 我想大家应该会好奇他是怎么实现  咋一看是不是觉得实现起来有点困难 因为各个按钮之间会绑定牵连在一起 原来android内部提供更容易的实现他的方法 也就是preferenceActivity该类封装了sharedpreferences所以他的所有子类都具有保存key-value对的能力

比较常用的设置项 有三类:

1、checkboxpreferences

2、edittextpreferences

3、listviewpreferences

好了 直接看列子吧 

分2步:

1、在res目录下建一个xml目录  并在该目录下新建一个preferences_setting.xml
?
代码片段,双击复制
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?xml
version=
"1.0"

encoding=
"utf-8"?>
<PreferenceScreen
xmlns:android=
"http://schemas.android.com/apk/res/android"

>
 
   
<PreferenceCategory
android:title=
"我的位置源"

>
    
   
<CheckBoxPreference
    
       
android:key="wireless_network"
    
       
android:summary="使用无线网络查看应用程序(例如Google地图)中的位置"
    
       
android:title="使用无线网络"

/>
    
   
<CheckBoxPreference
    
       
android:key="gps_satellite_setting"
    
       
android:summary="定位时,精确到街道级别(取消选择可节约电量)"
    
       
android:title="启用GPS卫星设置"

/>
   
</PreferenceCategory>
   
<PreferenceCategory
android:title=
"个人信息设置"

>
    
   
<CheckBoxPreference
    
       
android:key="yesno_save_individual_info"
    
       
android:title="是否保存个人信息"

/>
 
    
   
<EditTextPreference
    
       
android:key="individual_name"
    
       
android:summary="请输入真实姓名"
    
       
android:title="姓名"

/>
 
    
   
<PreferenceScreen
    
       
android:key="other_individual_msg"
    
       
android:summary="是否工作、手机"
    
       
android:title="其他个人信息"

>
    
       
<CheckBoxPreference
    
          
android:key="is_an_employee"
    
          
android:title="是否工作"

/>
 
    
       
<EditTextPreference
    
          
android:key="mobile"
    
          
android:summary="请输入真实的手机号"
    
          
android:title="手机"

/>
    
   
</PreferenceScreen>
   
</PreferenceCategory>
 
</PreferenceScreen>





2 、java文件:

?
代码片段,双击复制
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package

net.blogjava.mobile;
 
import

android.content.SharedPreferences;
import

android.os.Bundle;
import

android.preference.Preference;
import

android.preference.PreferenceActivity;
import

android.preference.PreferenceScreen;
import

android.preference.Preference.OnPreferenceChangeListener;
 
public

class

Main
extends

PreferenceActivity
implements
   
           
OnPreferenceChangeListener
{
   
   
/**
Called when the activity is first created. */
 
   
   
@Override
   
   
public

void

onCreate(Bundle savedInstanceState)
   
   
{
   
           
super.onCreate(savedInstanceState);
   
           
getPreferenceManager().setSharedPreferencesName("setting");
   
           
addPreferencesFromResource(R.xml.preference_setting);
   
           
Preference
individualNamePreference = findPreference(
"individual_name");
   
           
SharedPreferences
sharedPreferences= individualNamePreference.getSharedPreferences();
   
           
individualNamePreference.setSummary(sharedPreferences.getString("individual_name",
""));
   
           
if

(sharedPreferences.getBoolean(
"yesno_save_individual_info",
false))
   
                     
individualNamePreference.setEnabled(true);
   
           
else
   
                     
individualNamePreference.setEnabled(false);
   
           
individualNamePreference.setOnPreferenceChangeListener(this);
   
           
 
 
   
   
}
 
   
   
public

boolean

onPreferenceChange(Preference preference, Object newValue)
   
   
{
   
           
preference.setSummary(String.valueOf(newValue)); 
             
   
           
return

true
;
   
   
}
 
   
   
@Override
   
   
public

boolean

onPreferenceTreeClick(PreferenceScreen preferenceScreen,
   
                   
Preference
preference)
   
   
{
 
   
           
if

(
"yesno_save_individual_info".equals(preference.getKey()))
   
           
{
   
                   
findPreference("individual_name").setEnabled(
   
                                   
!findPreference("individual_name").isEnabled());
   
           
}
   
           
return

super
.onPreferenceTreeClick(preferenceScreen,
preference);
   
   
}
}




好了 大公搞成  还不知道需要demo  请留言

QQ截图20130123211311.png (67.01
KB, 下载次数: 0)

QQ截图20130123211311.png

抱歉!评论已关闭.