android菜单详解:菜单的一些特性

这里是一些其它特性,你可以把它们应用于大多数菜单条目.

菜单组

一个菜单组是由共享某些特性的一系列菜单项组成的.对于组,你可以:

要创建组,你可以在资源文件中通过把 <item> 元素嵌套到一个 <group> 元素实现,或在调用add()方法时指定一个组 ID.

下面是菜单资源中使用组的例子:

[html]   view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <menu xmlns:android="http://schemas.android.com/apk/res/android">  
  3.     <item android:id="@+id/item1"  
  4.           android:icon="@drawable/item1"  
  5.           android:title="@string/item1" />  
  6.     <!-- menu group -->  
  7.     <group android:id="@+id/group1">  
  8.         <item android:id="@+id/groupItem1"  
  9.               android:title="@string/groupItem1" />  
  10.         <item android:id="@+id/groupItem2"  
  11.               android:title="@string/groupItem2" />  
  12.     </group>  
  13. </menu>  

在组中的菜单项其实质与不在组中的菜单项是一样的----所有的三个菜单项都依旧兄弟.然而,你可以你可以使用上面列出的方法们根据组ID修改组中的两个菜单项的一些属性.

Checkable 菜单项

Figure 3. Screenshot of a submenu with checkableitems.

一个菜单可以作为打开或关闭某个选项的用户界面,此时使用一个checkbox用于独立选项,或使用一列radio按钮用于多选一的一组选项.下图演示了带有radio按钮的checkable菜单项的子菜单的样子.

注:图标菜单项 (来自选项菜单)不能显示一个checkbox或radio 按钮.如果你想使用图标菜单项能够 checkable,你必须手动指明 checked状态,在其每次状态变化时交换其图标或文本.

通过在 <item> 元素中使用 android:checkable 属性,你可以为不同的菜单项分别定义其checkable行为 ,或者通过为<group>元素指定android:checkableBehavior属性来定义组中所有菜单项的checkable行为.例如, 所有在这个组中所有的菜单项都是具有radio checkable 属性:

[html]   view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <menu xmlns:android="http://schemas.android.com/apk/res/android">  
  3.     <group android:checkableBehavior="single">  
  4.         <item android:id="@+id/red"  
  5.               android:title="@string/red" />  
  6.         <item android:id="@+id/blue"  
  7.               android:title="@string/blue" />  
  8.     </group>  
  9. </menu>  

属性 android:checkableBehavior 可接受以下值:
single
组中只有一个菜单项可以checked (radio 按钮)
all
组中所有菜单项可checked (checkboxes)
none
组中所有菜单项都不可checked

你可以在 <item>元素中使用 android:checked 属性为菜单项指定一个默认的checked状态并且可以在代码中使用setChecked() 方法改变其checked状态.

当一个 checkable 菜单项被选择时,系统调用相应的回调方法(比如 onOptionsItemSelected()). 在这个方法中你必须指定checkbox的状态.因为一个checkbox 或 radio 按钮不会自动改变其状态.你可以使用 isChecked()查询菜单项的当前状态,可使用setChecked()设置checked状态.比如:

[java]   view plain copy
  1. @Override  
  2. public boolean onOptionsItemSelected(MenuItem item) {  
  3.   switch (item.getItemId()) {  
  4.   case R.id.vibrate:  
  5.   case R.id.dont_vibrate:  
  6.     if (item.isChecked()) item.setChecked(false);  
  7.     else item.setChecked(true);  
  8.     return true;  
  9.   default:  
  10.     return super.onOptionsItemSelected(item);  
  11.   }  
  12. }  

如果你按上述方法设置状态,那么菜单项的可视状态是不会发生改变的.但当你做了的话, activity 会保存菜单项的checked 状态,于是当用户后面再打开菜单时,你设置的checked 状态就被看到了.

注:Checkable 菜单项被打算只用于单会话中,程序关闭后不会保存其状态.如果你有程序设置需要保存,你必须使用Shared Preferences保存数据.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习是一种人工智能(AI)的子领域,致力于研究如何利用数据和算法让计算机系统具备学习能力,从而能够自动地完成特定任务或者改进自身性能。机器学习的核心思想是让计算机系统通过学习数据中的模式和规律来实现目标,而不需要显式地编程。 机器学习应用非常广泛,包括但不限于以下领域: 图像识别和计算机视觉: 机器学习在图像识别、目标检测、人脸识别、图像分割等方面有着广泛的应用。例如,通过深度学习技术,可以训练神经网络来识别图像中的对象、人脸或者场景,用于智能监控、自动驾驶、医学影像分析等领域。 自然语言处理: 机器学习在自然语言处理领域有着重要的应用,包括文本分类、情感分析、机器翻译、语音识别等。例如,通过深度学习模型,可以训练神经网络来理解和生成自然语言,用于智能客服、智能助手、机器翻译等场景。 推荐系统: 推荐系统利用机器学习算法分析用户的行为和偏好,为用户推荐个性化的产品或服务。例如,电商网站可以利用机器学习算法分析用户的购买历史和浏览行为,向用户推荐感兴趣的商品。 预测和预测分析: 机器学习可以用于预测未来事件的发生概率或者趋势。例如,金融领域可以利用机器学习算法进行股票价格预测、信用评分、欺诈检测等。 医疗诊断和生物信息学: 机器学习在医疗诊断、药物研发、基因组学等领域有着重要的应用。例如,可以利用机器学习算法分析医学影像数据进行疾病诊断,或者利用机器学习算法分析基因数据进行疾病风险预测。 智能交通和物联网: 机器学习可以应用于智能交通系统、智能城市管理和物联网等领域。例如,可以利用机器学习算法分析交通数据优化交通流量,或者利用机器学习算法分析传感器数据监测设备状态。 以上仅是机器学习应用的一部分,随着机器学习技术的不断发展和应用场景的不断拓展,机器学习在各个领域都有着重要的应用价值,并且正在改变我们的生活和工作方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值