android里面菜单的使用,Preference android中菜单项的用法~

嗯,曾经一度想用preference来做我项目的设置菜单的,但突然发现现在的菜单列表都是仿ios来做的。所以放弃preference改用了listview,但毕竟是个知识点,还是在网上查了点资料学习下~

我理解的preference:

1.创建一个preferenceActivity,并

2.在xml文件夹下创建一个xml文件。​

3.添加preference相关元素,xml中各个元素的解释如下:

1)preferenceScreen是根节点,相当于layout中的LinearLayout之类的父级容器。preferenceScreen中可以再次包裹preferenceScreen,点击子preferenceScreen会进入子preferenceScreen所包裹的界面。

2)preferenceCategory是preference的类别,可以将多个preference放入preferenceCategory达到分类的目的,其本身无法点击。

3)preference是最普通的选项,其他如CheckBoxPreference、EditTextPreference都是继承自他并拓展出不同的用法的(各preference具体用法看上面转载的博客),他们都是用于点击来处理事件的。前面两个是容器和类别的话,preference是真正发挥作用的选项。

4.Activity通过addPreference方法来关联xml文件,通过findPreference方法进行绑定子preference。​

6.最后是最重要的,实现preference的触发事件,它的3个事件方法具体用法如下(直接抄了):

一.onPreferenceTreeClick​(最常用)

public boolean onPreferenceTreeClick (PreferenceScreen

preferenceScreen, Preference preference)

说 明

: 当Preference控件被点击时,触发该方法。

参数说明:

preference   点击的对象。

返回值:

true  代表点击事件已成功捕捉,无须执行默认动作或者返回上层调用链。

例如,不跳转至默认Intent;false

代表执行默认动作并且返回上层调用链。例如,跳转至默认Intent。

二.onPreferenceChange

boolean

onPreferenceChange(Preferencepreference,ObjectobjValue)

说明:  当Preference的元素值发送改变时,触发该事件。

返回值:true

代表将新值写入sharedPreference文件中;false

则不将新值写入sharedPreference文件

三.onPreferenceClick

public

booleanonPreferenceClick(Preference preference)

说明:当点击控件时触发发生,可以做相应操作。

四.触发规则

1)先调用onPreferenceClick()方法,如果该方法返回true,则不再调用onPreferenceTreeClick方法

;如果onPreferenceClick方法返回false,则继续调用onPreferenceTreeClick方法。

2)onPreferenceChange的方法独立与其他两种方法的运行。也就是说,它总是会运行。

补充:点击某个Preference控件后,会先回调onPreferenceChange()方法,即是否保存值,然后再回调onPreferenceClick以及onPreferenceTreeClick()方法,因此在onPreferenceClick/onPreferenceTreeClick方法中我们得到的控件值就是最新的Preference控件值。

over~不知道preference可不可以优化下UI,如果好看点我觉得还是可以用的~​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值