android中包含Preference ListPreference EditTextPreference等控件布局的写法,已经操作各个控件的事件介绍,如下


<?xml version="1.0" encoding="utf-8"?><PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >    <PreferenceCategory        android:layout="@layout/category_normal"        android:title="@string/Nike" />    <ListPreference        android:key="voice_reaction"        android:dialogTitle="@string/voice_reaction"        android:entries="@array/voices"        android:entryValues="@array/voices_value"        android:layout="@layout/schpwr_background_double_top"        android:widgetLayout="@layout/pref_widget_more"        android:defaultValue="@string/guan"        android:title="@string/voice_reaction" />    <ListPreference        android:key="nike_distance"        android:dialogTitle="@string/nike_distance"        android:entries="@array/distance"        android:entryValues="@array/distance_value"        android:layout="@layout/schpwr_background_double_middle"        android:widgetLayout="@layout/pref_widget_more"        android:defaultValue="@string/km"        android:title="@string/nike_distance" />    <ListPreference        android:key="nike_weight_list"        android:dialogTitle="@string/nike_weight_list"        android:entries="@array/weight_list"        android:entryValues="@array/weight_list_value"        android:layout="@layout/schpwr_background_double_middle"        android:widgetLayout="@layout/pref_widget_more"        android:defaultValue="@string/kg"        android:title="@string/nike_weight_list" />    <EditTextPreference        android:key="nike_weight"        android:layout="@layout/schpwr_background_double_bottom"        android:widgetLayout="@layout/pref_widget_more"        android:defaultValue="0"        android:title="@string/nike_weight" />    <PreferenceCategory            android:layout="@layout/category_normal"            android:title="@string/kongzhi" />        <Preference         android:key="nike_intent"        android:layout="@layout/nike_settings_header_roundcorner_item"        android:title="@string/to_nike">        <intent android:action="android.intent.action.VIEW"                android:data="http://www.android.com" />        </Preference></PreferenceScreen>

NikeSettings.java

package com.android.settings;import android.content.Intent;import android.content.SharedPreferences;import android.content.SharedPreferences.OnSharedPreferenceChangeListener;import android.graphics.Color;import android.graphics.drawable.ColorDrawable;import android.os.Bundle;import android.preference.EditTextPreference;import android.preference.ListPreference;import android.preference.Preference;import android.preference.PreferenceActivity;import android.preference.PreferenceManager;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.widget.Button;import android.widget.ListView;import android.widget.TextView;public class NikeSettings extends PreferenceActivity implements OnSharedPreferenceChangeListener {private Button mBtn;private TextView mText;private ListPreference voice_reaction;private ListPreference nike_distance;private ListPreference nike_weight_list;private EditTextPreference nike_weight;@Overridepublic void onCreate(Bundle savedInstanceState) {requestWindowFeature(Window.FEATURE_NO_TITLE);super.onCreate(savedInstanceState);setContentView(R.layout.settings_layout);addPreferencesFromResource(R.xml.nike_settings);ListView listView = this.getListView();       listView.setCacheColorHint(Color.TRANSPARENT);       listView.setSelector(new ColorDrawable(Color.TRANSPARENT));       mText = (TextView)findViewById(R.id.general_title);       mText.setText(R.string.Nike);       mBtn = (Button)findViewById(R.id.back_settings);       mBtn.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                 finish();                }        });       voice_reaction  = (ListPreference)findPreference("voice_reaction");       nike_distance  = (ListPreference)findPreference("nike_distance");       nike_weight_list  = (ListPreference)findPreference("nike_weight_list");       nike_weight  = (EditTextPreference)findPreference("nike_weight");              voice_reaction.setSummary(voice_reaction.getEntry());       nike_distance.setSummary(nike_distance.getEntry());       nike_weight_list.setSummary(nike_weight_list.getEntry());       nike_weight.setSummary(nike_weight.getText()+nike_weight_list.getEntry());      
            //改变ListPreference和EditTextPreference时,获取修改后的值并时时的改变summary的值       SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);       prefs.registerOnSharedPreferenceChangeListener(this);}@Overridepublic void onSharedPreferenceChanged(SharedPreferences sharedPreferences,String key) {if (key.equals("voice_reaction")) {voice_reaction.setSummary(voice_reaction.getEntry());} else if (key.equals("nike_distance")) {nike_distance.setSummary(nike_distance.getEntry());} else if (key.equals("nike_weight_list")) {nike_weight_list.setSummary(nike_weight_list.getEntry());nike_weight.setSummary(nike_weight.getText()+nike_weight_list.getEntry());} else if (key.equals("nike_weight")) {nike_weight.setSummary(nike_weight.getText()+nike_weight_list.getEntry());}}}

value/array.xml

<?xml version="1.0" encoding="utf-8"?><resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">    <string-array name="voices">        <item>男</item>        <item>女</item>        <item>关</item>    </string-array>    <string-array name="voices_value">        <item>nan</item>        <item>nv</item>        <item>guan</item>    </string-array>        <string-array name="distance">        <item>英里</item>        <item>公里</item>    </string-array>    <string-array name="distance_value">        <item>mile</item>        <item>km</item>    </string-array>        <string-array name="weight_list">        <item>磅</item>        <item>公斤</item>    </string-array>    <string-array name="weight_list_value">        <item>pound</item>        <item>kg</item>    </string-array></resources>


更多相关文章

  1. android ListView滑动到顶部带弹性效果
  2. android中设置一些没有maxHeight属性控件的最高值
  3. [置顶] Android动态添加控件约束位置
  4. android 中imageview 与diallog综合应用猜牌游戏
  5. Android的简单组件总结
  6. Android中如何实现图像的闪动
  7. LinearLayout 线性布局
  8. Android
  9. Android(安卓)控件 —— ListView

随机推荐

  1. Android(安卓)存储路径选择方法
  2. Android(安卓)五种布局模式
  3. android 截屏的三种方法
  4. Android(安卓)USB Host与HID通讯(二)
  5. Unable to get buffer of resource asset
  6. android中handler 轮询数据变化 使用Weak
  7. 在AMD64 位ubuntu8上android source code
  8. apt-get -f install 修复失败!
  9. Android(安卓)如何解析Xml字符串
  10. Android原生上下滚动控件ViewFlipper的点