您的位置:首页 > 移动开发 > Android开发

Android之数据存储共享参数实现系统设置操作功能(二)

2015-12-28 11:39 721 查看
新建工程Android_data_settings选中API11:Android3.0(HoneyComb)

在res新建文件夹xml中创建mysetting.xml文件:New Android XML File->Resource Type 中选中Preference,File命名为mysettings.xml点击next->finsh

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

<!-- 设置的类别 -->
<PreferenceCategory
android:key="mylocation"
android:summary="我的位置"
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:key="mymessage"
android:summary="个人信息设置"
android:title="个人信息设置" >
<CheckBoxPreference
android:key="yesno_save_individual_info"
android:title="是否保存个人信息" />

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

<ListPreference
android:entries="@array/citys"
android:entryValues="@array/citys"
android:key="mycity"
android:summary="所属城市"
android:title="所属城市" />
</PreferenceCategory>

</PreferenceScreen>


strings.xml代码

<?xml version="1.0" encoding="utf-8"?>
<resources>

<string name="app_name">Android_data_settings</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>

<string-array name="citys">
<item>北京</item>
<item>上海</item>
<item>广州</item>
</string-array>

</resources>


MainActivity.java代码

package com.example.android_data_settings;

import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.EditTextPreference;
import android.preference.Preference;
import android.preference.PreferenceScreen;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends PreferenceActivity implements OnPreferenceChangeListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getPreferenceManager().setSharedPreferencesName("mysettings");
addPreferencesFromResource(R.xml.mysettings);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}

@Override
public boolean onPreferenceChange(Preference arg0, Object arg1) {
// TODO Auto-generated method stub
return false;
}

@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
Preference preference) {
// TODO Auto-generated method stub
if ("yesno_save_individual_info".equals(preference.getKey())) {
Toast.makeText(MainActivity.this, "hello", 1).show();
CheckBoxPreference checkBoxPreference = (CheckBoxPreference) findPreference("yesno_save_individual_info");
EditTextPreference editTextPreference = (EditTextPreference) findPreference("individual_name");
editTextPreference.setEnabled(checkBoxPreference.isChecked());
}
return super.onPreferenceTreeClick(preferenceScreen, preference);
}
}


运行效果图





当勾选了是否保存个人信息,下面的姓名一栏就可以输入。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: