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

android Preference ListPreference EditTextPreference_第1张图片

<?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 控件之一:Button 按钮
  2. android 中动态创建控件
  3. Android自定义view三验证码输入控件
  4. 时间控件
  5. Android 动态生成多行多列控件
  6. [置顶] Android动态添加控件约束位置
  7. android中设置一些没有maxHeight属性控件的最高值
  8. 多个控件跑马灯效果
  9. Android 日期时间选择控件

随机推荐

  1. Android使用NDK进行联网签名认证
  2. android官方资源下载url
  3. iOS与Android对比学之NSNotificationCent
  4. Android 启动app的几种方式
  5. Android(安卓)Studio里面的Build.gradle
  6. AES Crypto 在 Android P(Android 9.0) 被
  7. Android manifest属性总结
  8. android——ListView功能的实现
  9. android屏幕旋转在framework中的修改。
  10. Android -- Toolbar跟随ListView滑动隐藏