- 浏览: 434993 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
weiwu83:
为什么我在手机内访问127.0.0.1访问不了呀
NanoHttpd 构建android 手机端的HttpServer -
jiae:
为啥我的插入语句乱码? 但是可以插入数据库 然后复制你 ...
SQLite3 在应用启动时初始化数据 -
lichenxiao77:
...
android 连接远程数据库 -
林源滔:
为什么我make clobber之后第一次执行make 可以。 ...
No rule to make target `out/target/common/obj/JAVA_LIBRARIES/bouncycastle_in -
cn23snyga:
new String(str.getBytes("I ...
android 平台上SQLite3中文乱码 --我的小bug
对于每个应用程序来说,都要有一些属于用户自己的设置,满足不同需求。当我们点击menu时,如下:
点击settings时,出现:
那么这样的效果是怎么实现的呢?我只是来个简单介绍,给自己做备忘,也是给大家点思路吧。在android的路上,我们一起努力吧。
这里我们仅说第二个图片效果的实现,第一个图片的效果,想必大家都会了,就是使用menu类的几个方法就可以了。
1.PreferenceScreen 的使用。
首先要定义一下整个布局即使用xml文件夹下的preferences.xml。
代码如下:
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 如果拥有多个首选项,可以构建一个视图来显示首选项高级类别。用户然后就可以深入到每个类别,查看和管理特 定于该组的首选项。 可以通过两种方式来实现此目的。可以在根 PreferenceScreen中引入嵌套的 PreferenceScreen 元素, 或者可以使用 PreferenceCategory 来获得类似的结果。 --> <PreferenceCategory android:title="@string/app_name" android:summary="Application settings"> <EditTextPreference android:key="user_name" android:defaultValue="@null" android:title="@string/preference_username_title" android:summary="@string/preference_username_summary" /> <ListPreference android:key="download_format" android:title="@string/preference_codec_title" android:summary="@string/preference_codec_summary" android:entries="@array/stream_codecs" android:entryValues="@array/stream_codecs_values" /> <ListPreference android:key="cache_option" android:title="@string/preference_cache_title" android:summary="@string/preference_cache_summary" android:entries="@array/cache_size" android:entryValues="@array/cache_size_values"/> <CheckBoxPreference android:key="wifi_only" android:defaultValue="false" android:title="@string/preference_wifi_only_title" android:summary="@string/preference_wifi_only_summary" /> <CheckBoxPreference android:key="roaming_protection" android:defaultValue="true" android:title="@string/preference_roaming_summary" android:summary="@string/preference_roaming_summary" /> </PreferenceCategory> <PreferenceCategory android:title="@string/preference_3rdparty_title" android:summary="@string/preference_3rdparty_summary"> <CheckBoxPreference android:defaultValue="false" android:key="scrobbling_enabled" android:title="@string/scrobbling_enabled"/> <ListPreference android:key="scrobbler_app" android:dependency="scrobbling_enabled" android:entries="@array/scrobbler_apps" android:title="@string/scrobbler_app" android:entryValues="@array/scrobbler_apps_values" android:summary="@string/scrobbler_app_summary"></ListPreference> </PreferenceCategory> <PreferenceCategory android:title="@string/gestures_preference_title" android:summary="@string/gestures_preference_summary"> <CheckBoxPreference android:key="gestures" android:defaultValue="true" android:title="@string/gestures_support" android:summary="@string/gestures_support_summary"/> </PreferenceCategory> <PreferenceCategory android:title="@string/preference_reset_title"> <Preference android:key="reset_firstrun" android:summary="@string/preference_firstrun_reset_summary" android:title="@string/preference_firstrun_reset_title"></Preference> </PreferenceCategory> </PreferenceScreen>
其中:
特性 说明
android:key 选项的名称或键(比如selected_flight_sort_option)
android:title 选项的标题
android:summary 选项的简短摘要
android:entries 可将选项设置成列表项的文本
android:entryValues 定义每个列表项的值。注意:每个列表项有一些文本和 一 个 值。 文本由
entries定义,值由entryValues定义。
android:dialogTitle 对话框的标题,在视图显示为模态对话框时使用
android:defaultValue 项列表中选项的默认值
在开发文档中这样定义PreferenceScreen, Represents a top-level Preference that is the root of a Preference hierarchy. 即显示了首选项组织体系的最顶级。
2.PreferenceActivity
A PreferenceActivity points to an instance of this class to show the preferences. 即我们通过实例化一个继承PreferenceActivity 的类来展示首选项,代码如下
public class SettingsActivity extends PreferenceActivity { @Override public void onCreate(Bundle savedInstanceState)
{ requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState); //添加设置,加入引用
addPreferencesFromResource(R.xml.preferences); setContentView(R.layout.settings); }
}
关于布局文件settings.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#000000"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/gradient_dark_purple" android:orientation="horizontal" android:gravity="center" android:minHeight="75dip"> <LinearLayout android:layout_height="wrap_content" android:minHeight="75dip" android:layout_width="fill_parent" android:orientation="horizontal" android:gravity="center_vertical" android:paddingLeft="13dip" android:paddingRight="13dip"> <ImageView android:layout_width="48dip" android:layout_height="48dip" android:src="@drawable/settings"></ImageView> <LinearLayout android:layout_height="wrap_content" android:paddingLeft="13dip" android:orientation="vertical" android:layout_width="fill_parent"> <TextView android:layout_width="wrap_content" android:singleLine="true" android:layout_height="wrap_content" android:textSize="18dip" android:textColor="#ffffff" android:text="@string/settings"></TextView> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="12dip" android:textColor="#ffffff"></TextView> <TextView android:id="@+id/ItemsCountTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:textSize="12dip" android:textColor="#ffffff" android:text=" "></TextView> </LinearLayout> </LinearLayout> </LinearLayout> <ListView android:layout_width="fill_parent" android:id="@android:id/list" android:layout_weight="1" android:layout_height="fill_parent"> </ListView> </LinearLayout>
当我们点击其中某一项时,如cache option
效果:
用到了我们在res下定义的arrays.xml
其中部分内容如下:
<resources> <string-array name="cache_size"> <item>Off</item> <item>50 MB</item> <item>100 MB</item> <item>250 MB</item> <item>500 MB</item> </string-array> <string-array name="cache_size_values"> <item>0</item> <item>50</item> <item>100</item> <item>250</item> <item>500</item> </string-array> </resources>
实在不明白的可以参考:http://byandby.iteye.com/blog/1045508 谢谢作者呵呵。
仅提供思路。
发表评论
-
Android.mk文件解析
2016-01-27 14:01 919以 tools/tradefederation/Androi ... -
NanoHttpd 构建android 手机端的HttpServer
2015-10-20 16:24 2931NanoHttpd是Github上的一个开源项目, 通过下载 ... -
permission denial : android.permission.INTERACT_ACROSS_USERS_FULL
2015-08-05 16:50 5040在android5.0上运行 Runtime.getRun ... -
android getprop() 和 java System.getPropety()
2015-06-04 14:39 63411 System.getPropety()是java中的方 ... -
android cts测试相关
2015-05-27 17:38 0example: -
android uiautomator 相关
2015-05-15 16:53 16901 Runtime.getRuntime().exec 启 ... -
android UI test Espresso
2015-04-10 18:31 1197google android UI测试工具 espresso ... -
android 安全(转)
2014-12-26 12:37 719一 如何不被反编译解析1防止反编译工具的反编译 查看 ... -
nexus related
2014-12-17 15:29 7361 nexus drivers https://deve ... -
git related
2014-12-17 15:24 9611 see all detailed git info ... -
ubuntu android studio 配置和使用
2014-12-10 17:34 3624Ubuntu 64位,Android studio 的安装, ... -
eclipse+ADT+android配置相关
2014-12-05 16:40 14461 eclipse 过旧时,ant 运行不了,会报sdk. ... -
anroid 开发小知识点
2014-10-09 09:52 8201 1)代码 获取APK安装路径和包名 L ... -
androird 内存泄露 浅析
2013-06-19 17:52 1440主要是记录工作中出 ... -
java层堆栈调用的打印
2012-12-26 15:14 44641. 在指定的函数内打印相关java调用 Log.d ... -
sms AT指令返回错误代码: CMS errors & CME errors 的区别!
2012-10-26 18:35 12005CMS的是短信中心的返回错误。 CME 是设备返 ... -
sms 发送 radio log
2012-10-26 17:25 4065发送短信:radio.log 关键字 :SEND_SMS ... -
SQLite --函数
2012-09-03 18:22 1973一、日期和时间函数:原文地址SQLite主要支持以下 ... -
Low memory killer
2012-08-09 11:47 16151,引入原因 Android是一个多任务系统,也 ... -
OTA 文档地址 及开发
2012-07-06 13:18 1725[OTA]制作OTA短信来配置手机与服务器同步 ...
相关推荐
理解并熟练掌握PreferenceActivity的使用,对于构建用户友好的设置界面至关重要,同时也能提高开发效率。通过学习和实践,开发者可以轻松地为应用程序创建定制化的设置菜单,提供更好的用户体验。
总之,PreferenceActivity和相关组件为Android开发者提供了一种高效的方式来构建应用程序的设置界面,使得我们可以专注于逻辑处理,而不用过多关注界面布局的细节。通过熟练掌握这些组件,你可以轻松创建出符合...
总结,`PreferenceActivity`是构建Android应用设置界面的有效工具,通过XML布局和Java代码的结合,可以轻松实现用户设置的创建、显示和处理。尽管在新版本的Android中被`PreferenceFragment`取代,但在向后兼容和...
总之,`PreferenceActivity`和`Preference`类是Android开发中构建设置界面的标准工具,它们使得开发者能够轻松地创建用户友好的设置界面,并方便地处理用户的偏好设置。理解并熟练使用这两个组件,对于开发高质量的...
总结一下,`PreferenceActivity`是Android中构建设置界面的便捷工具。通过XML定义偏好项,结合`addPreferencesFromResource()`加载,可以快速搭建出用户友好的设置页面。同时,利用`findPreference()`和`...
`PreferenceActivity`是构建Android应用设置界面的重要工具,它简化了偏好管理并提供了统一的用户体验。随着Android框架的发展,虽然`PreferenceActivity`的使用有所减少,但理解其工作原理对于Android开发仍然至关...
首先,PreferenceActivity是Android SDK提供的一种特殊类型的Activity,它允许开发者快速构建具有可配置选项的界面,类似于系统设置应用中的各种设置页面。通过使用PreferenceScreen和各种Preference子类(如...
它使得开发者可以轻松地构建具有各种设置选项的界面,如开关、单选按钮、复选框等,而无需从头编写大量的XML和Java代码。本文将深入探讨`PreferenceActivity`的实现及其相关知识点。 首先,`PreferenceActivity`是...
以“我的位置”设置为例,其XML代码展示了如何使用`PreferenceCategory`和`CheckBoxPreference`构建具体的偏好设置界面。每个`CheckBoxPreference`元素都定义了`key`、`title`、`summary`和`defaultValue`属性,分别...
通过合理使用和定制,开发者可以为用户提供直观且易于操作的设置选项。然而,随着Android系统的发展,开发者应该考虑使用更现代的`PreferenceFragmentCompat`来代替,以确保更好的兼容性和功能支持。
当用户在PreferenceActivity中进行设置更改时,这些更改会被自动保存到对应的SharedPreferences文件中,以便后续读取和使用。开发者可以通过SharedPreferences接口来读取和修改PreferenceActivity中的设置值。 创建...
PreferenceActivity的使用大大简化了创建设置界面的工作,通过XML定义界面元素和它们的行为,然后在Activity中加载这些元素,就能生成一个功能齐全的设置界面。这种方法不仅易于维护,也方便扩展和自定义。
在软件开发中,设置窗体是一个普遍存在的组件,它允许用户根据自己的偏好来定制应用程序的行为和外观。本文档详细介绍了如何利用Android平台中的Preference技术来构建程序的设置窗体,以及一些常用的Preference控件...
在Android开发中,UI设计是至关重要的一环,而PreferenceActivity是Android系统提供的一种用于构建设置界面的特殊Activity。本篇文章将深入探讨如何利用PreferenceActivity来创建用户交互界面,特别是涉及开启WiFi和...
PreferenceActivity是Android系统提供的一种用于展示用户设置界面的特殊Activity,它主要用于构建应用程序的设置页面。在Android早期版本中,它是实现设置界面的主要方式。在本文中,我们将深入探讨...
这里我们关注的是“Android仿iPhone风格设置页面”,这个话题涉及到使用`PreferenceActivity`来构建一个类似iOS设置界面的应用组件。`PreferenceActivity`是Android SDK中的一个特殊类,主要用于创建用户设置界面,...
例如,`PreferenceFragment` 和 `PreferenceActivity` 用于构建设置界面的布局,而各个具体的设置类(如 `AboutSettings`、`Wi-FiSettings`)则负责处理特定的设置项。 2. **首选项框架**: 在 Android 4.4 中,...
例如,`PreferenceActivity` 和 `PreferenceFragment` 负责界面展示,而 `ContentProvider` 处理设置数据的存储和读取。 2. **首选项框架** Android 的首选项框架用于构建设置界面,它允许开发者创建可交互的设置...