任何App都会存在设置界面,如果开发者利用普通控件并绑定监听事件保存设置,这一过程会非常的枯燥,而且耗时。我们可以看到Android系统的设置界面里面的选项如此之多,是不是都是这样开发的呢?其实不然,Android已经给我们提供了专门设计这一功能的技术,叫应用程序首选项,今天我们将学习如何使用他们来开发配置界面以及功能。

 

二、准备工作

首先需要理解的就是我们设置界面还是需要控件的,但是我们所使用的控件不在是普通的控件,下面我们来简单的介绍下我们需要知道的控件。

CheckBoxPreference:用来实现勾选的项目,在SharedPreference中保存为bool类型。

EditTextPreference:用来实现字符输入的项目,在SharedPreference中保存为字符串类型。

ListPreference:用来实现提供一列数据供选择的项目,在SharedPreference中保存为字符串类型。

PreferenceActivity:首选项活动。

PreferenceCategory:用来实现将首选项进行分类。

PreferenceScreen:用于在另一个新的屏幕上对首选项进行分组。

除了以上的还有其它的这里就不意义例举了。

 

三、正文

 

1.显示一个简单的首选项

首先我们需要打开MainActivity并将继承的基类改成PreferenceActivity,然后将SetContentView改成AddPreferencesFromResource,具体的代码如下所示:

1         protected override void OnCreate(Bundle bundle)
2         {
3             base.OnCreate(bundle);
4             AddPreferencesFromResource(Resource.Layout.Main);
5         }

读者也可以尝试不修改而直接显示,当然一定会报错。

 

修改好了代码我们打开Main.axml并将其中的所有xml删除,改写成如下所示:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
 3     <PreferenceCategory
 4         android:title="配置分类1">
 5         <CheckBoxPreference
 6             android:key="PREF_CHECK_BOX"
 7             android:title="Check Box Preference"
 8             android:defaultValue="true" />
 9     </PreferenceCategory>
10     <PreferenceCategory
11         android:title="配置分类2">
12         <EditTextPreference
13             android:key="PREF_EDIT_BOX"
14             android:title="Edit Text Preference"
15             android:dialogMessage="please input"
16             android:defaultValue="test" />
17     </PreferenceCategory>
18     <PreferenceCategory
19         android:title="配置分类3">
20         <ListPreference
21             android:title="List Preference"
22             android:key="listChoice"
23             android:entries="@array/ListText"
24             android:entryValues="@array/ListValue"
25             android:summary="choice one item" />
26     </PreferenceCategory>
27     <PreferenceCategory
28         android:title="配置分类4">
29         <PreferenceScreen
30             android:title="子配置">
31             <CheckBoxPreference
32                 android:key="PREF_CHECK_BOX_1"
33                 android:title="Check box"
34                 android:defaultValue="true" />
35         </PreferenceScreen>
36         <PreferenceScreen
37             android:title="打开新的意图">
38             <intent
39                 android:action="android.settings.DISPLAY_SETTINGS" />
40         </PreferenceScreen>
41     </PreferenceCategory>
42 </PreferenceScreen>
View Code

相关文章:

  • 2021-10-11
  • 2022-12-23
  • 2021-10-03
  • 2021-05-28
  • 2021-05-28
  • 2021-09-30
  • 2021-10-29
  • 2022-01-08
猜你喜欢
  • 2021-12-21
  • 2021-05-02
  • 2021-07-07
  • 2022-12-23
  • 2021-06-20
  • 2021-10-30
  • 2021-04-29
相关资源
相似解决方案