频道栏目
首页 > 资讯 > 其他 > 正文

Preference使用总结

17-05-08        来源:[db:作者]  
收藏   我要投稿
Preference使用总结。注释:部分代码引用http://blog.csdn.net/qinjuning 
单一控件:
 Preference//  TextView           文本框
 CheckPreference // CheckBox           单选框
 EditTextPreference// EditText          输入文本框 
 ListPreference// ListView          列表框
 RingtonePreference//  ——               铃声
 组合控件:
 PreferenceCategory :
类似于LinearLayou、RelativeLayout,用于组合一组Preference,使布局更具备层次感 。
 PreferenceScreen  : 所有Preference元素的根节点。
 **android 3.0以前使用方法**
 使我们的Activity继承PreferenceActivity,然后在onCreate()方法中通过   
addPreferencesFromResource(R.xml.custom_preference) (我们自定义的Preference 布局)。
 3.0以后已经不建议使用了 推荐使用PreferenceFragment 在onCreate()方法中
addPreferencesFromResource(R.xml.preference); 在Activity中引入Freagment
       代码如下 :
       在res目录下新建xml文件夹 新建preference.xml文件
             
            
    
    
    
    
    
    
    
    
        
        
        
    
    
    
    
    
    
     
**frengment中代码**
     public class SpFrengment extends PreferenceFragment implements      Preference.OnPreferenceChangeListener {
    private CheckBoxPreference mapply_wifiPreference;       //打开wifi
    private CheckBoxPreference mapply_internetPreference;   //Internet共享
    private ListPreference depart_valuePreference;          //部门设置
    private EditTextPreference number_editPreference;       //输入电话号码
    private Preference mwifi_settingPreference;          
    //wifi设置 对应textview 设置对应的OnpreferenceClickListener
    private CheckBoxPreference apply_wireless;             //使用无线网络
    private CheckBoxPreference apply_gps;             //gps
    private CheckBoxPreference apply_bluetooth;             //蓝牙
    private Preference bluetooth_setting;             //蓝牙设置
    private RingtonePreference ring_key;             //蓝牙设置
    private String oldDeptId; // 旧部门的名称

    public SpFrengment() {
    }

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preference);
        **//根据key值找到控件**
        mapply_wifiPreference = (CheckBoxPreference) findPreference("apply_wifi");//打开Wi-Fi
        mapply_internetPreference = (CheckBoxPreference) findPreference("apply_internet");//Internet共享
        depart_valuePreference = (ListPreference) findPreference("depart_value");//部门
        number_editPreference = (EditTextPreference) findPreference("number_edit");//输入号码
        mwifi_settingPreference = (Preference) findPreference("wifi_setting");//Wi-Fi设置
        apply_wireless = (CheckBoxPreference) findPreference("apply_wireless");//使用无线网络
        apply_gps = (CheckBoxPreference) findPreference("apply_gps");//gps设置
        apply_bluetooth = (CheckBoxPreference) findPreference("apply_bluetooth");//蓝牙
        bluetooth_setting = (Preference) findPreference("bluetooth_setting");//蓝牙设置
        ring_key = (RingtonePreference) findPreference("ring_key");//响铃设置

        **// 设置监听器**
        mapply_internetPreference.setOnPreferenceChangeListener(this);
        mapply_internetPreference.setOnPreferenceChangeListener(this);
        depart_valuePreference.setOnPreferenceChangeListener(this);
        number_editPreference.setOnPreferenceChangeListener(this);
        mwifi_settingPreference.setOnPreferenceChangeListener(this);
        apply_wireless.setOnPreferenceChangeListener(this);
        apply_gps.setOnPreferenceChangeListener(this);
        apply_bluetooth.setOnPreferenceChangeListener(this);
        bluetooth_setting.setOnPreferenceChangeListener(this);
        ring_key.setOnPreferenceChangeListener(this);
        mapply_wifiPreference.setOnPreferenceChangeListener(this);
  **得到我们的存储Preferences值的对象,然后对其进行相应操作**
        SharedPreferences shp = PreferenceManager.getDefaultSharedPreferences(getActivity());
        boolean apply_wifiChecked = shp.getBoolean("apply_wifi", false);

    }
    // 当Preference的值发生改变时触发该事件,true则以新值更新控件的状态,false则do noting
    @Override
    public boolean onPreferenceChange(Preference preference, Object objValue) {
        if (preference == mapply_wifiPreference) {
            Toast.makeText(getActivity(), "mapply_wifiPreference", Toast.LENGTH_SHORT).show();
        } else if (preference.getKey().equals("apply_internet")) {
            Toast.makeText(getActivity(), "apply_internet", Toast.LENGTH_SHORT).show();
        } else if (preference == mapply_internetPreference) {
            Toast.makeText(getActivity(), "mapply_internetPreference", Toast.LENGTH_SHORT).show();
        } else if (preference.getKey().equals("wifi_setting")) {
            Toast.makeText(getActivity(), "wifi_setting", Toast.LENGTH_SHORT).show();
        } else if (preference == depart_valuePreference) {
            Toast.makeText(getActivity(), "depart_valuePreference", Toast.LENGTH_SHORT).show();
        } else if (preference == number_editPreference) {
            Toast.makeText(getActivity(), "number_editPreference", Toast.LENGTH_SHORT).show();
        } else if (preference == mwifi_settingPreference) {
            Toast.makeText(getActivity(), "mwifi_settingPreference", Toast.LENGTH_SHORT).show();
        } else if (preference == apply_wireless) {//无线网络
            Toast.makeText(getActivity(), "apply_wireless", Toast.LENGTH_SHORT).show();
        } else if (preference == apply_gps) {
            Toast.makeText(getActivity(), "apply_gps", Toast.LENGTH_SHORT).show();
        } else if (preference == apply_bluetooth) {
            Toast.makeText(getActivity(), "apply_bluetooth", Toast.LENGTH_SHORT).show();
        } else if (preference == bluetooth_setting) {
            Toast.makeText(getActivity(), "bluetooth_setting", Toast.LENGTH_SHORT).show();
        } else if (preference == ring_key) {
            Toast.makeText(getActivity(), "ring_key", Toast.LENGTH_SHORT).show();
        }
        return true;  //保存更新后的值
    }
}
**Activity中**
public class SpActivity  extends AppCompatActivity{
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_spactivity);
        getFragmentManager().beginTransaction().replace(R.id.frent,new   SpFrengment()).commit();

    }
}
相关TAG标签
上一篇:Android Canvas 绘图之 PorterDuffXfermode
下一篇:Android Studio如何导入android-support-v4,v7,v13等支持包?
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站