android Preference ListPreference EditTextPreference
16lz
2022-06-14
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>
更多相关文章
- android ListView滑动到顶部带弹性效果
- android中设置一些没有maxHeight属性控件的最高值
- [置顶] Android动态添加控件约束位置
- android 中imageview 与diallog综合应用猜牌游戏
- Android的简单组件总结
- Android中如何实现图像的闪动
- LinearLayout 线性布局
- Android
- Android(安卓)控件 —— ListView