Android中的常量 DEFAULT_KEYS_SHORTCUT

1.  关于 DEFAULT_KEYS_SHORTCUT  的 API文档介绍

Use with setDefaultKeyMode (int) to execute a menu shortcut in default key handling.

That is, the user does not need to hold down the menu key to execute menu shortcuts.

从字面上看,其含义是指,将默认的按键 输入作为菜单快捷键进行处理。

也就是说,用户不需要按下menu按键,就可以处理菜单快捷键,听起 来非常神奇,究竟是不是这样呢?

2.编写示例程序

我们编写一个程序验证一下其功能,首先新建一 个工程,并设置默认按键模式为 DEFAULT_KEYS_SHORTCUT

package com.silenceburn;  

import android.app.Activity;
import android.os.Bundle;  

public class MenuShortCutTester extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);  

        setDefaultKeyMode(DEFAULT_KEYS_SHORTCUT);
    }
}

为默认的main.xml中的TextView增加一个id属性,之后我们会用菜单选项控制这行字的颜色

<?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"
    >
<TextView
    android:id="@+id/myText"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
</LinearLayout>

使用findViewById获取上一步中定义了id的文本对象,将其引用保存在成员 变量b中。

重写onPrepareOptionsMenu方法,增加我们自己的菜单项,并注册快捷键,同时增加菜单点 击的响应事件。

package com.silenceburn;  

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuItem.OnMenuItemClickListener;
import android.widget.TextView;  

public class MenuShortCutTester extends Activity {
    /** Called when the activity is first created. */
    TextView b;  

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);  

        b = (TextView) this.findViewById(R.id.myText);  

        setDefaultKeyMode(DEFAULT_KEYS_SHORTCUT);
    }  

    @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        // TODO Auto-generated method stub
        super.onPrepareOptionsMenu(menu);  

        menu.removeItem(0);
        menu.removeItem(1);
        menu.add( 0, 0, 0, "One").setShortcut('0', '0').setOnMenuItemClickListener(new OnMenuItemClickListener(){  

            @Override
            public boolean onMenuItemClick(MenuItem item) {
                // TODO Auto-generated method stub
                b.setBackgroundColor(android.graphics.Color.RED);
                return true;
            }});
        menu.add( 0, 1, 0, "Two").setShortcut('1', '1').setOnMenuItemClickListener(new OnMenuItemClickListener(){  

            @Override
            public boolean onMenuItemClick(MenuItem item) {
                // TODO Auto-generated method stub
                b.setBackgroundColor(android.graphics.Color.GREEN);
                return true;
            }});   

        return true;
    }
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, menu
, android bundle
, import
, override
, public
, shortcut
, savedinstancestate
, android快捷键
, menu按键
, Android响应菜单
android中menu
c shortcutkeys、default checked keys、android shortcut、android 7.1 shortcut、shortcut android7,以便于您获取更多的相关知识。

时间: 2024-10-04 14:42:04

Android中的常量 DEFAULT_KEYS_SHORTCUT的相关文章

android中只要View类及其子类有xml属性吗

问题描述 android中只要View类及其子类有xml属性吗 android中只要View类及其子类有xml属性吗,还有其他什么类有xml属性呢,它们的xml属性实际是它们的常量吗 解决方案 XML 在 Android 中用来布局控件的位置与属性,XML 做为标识语言也可以做其它用途的. 至于 Android 中是否有其它类也使用 XML 不太清楚,但至少也可以用的.XML 如果使用,做为变量是正常的.但为什么是常量呢? 解决方案二: 不知道理想表达的是什么意思,Android控件xml配置归

Android 中的注解详细介绍_Android

注解是我们经常接触的技术,Java有注解,Android也有注解,本文将试图介绍Android中的注解,以及ButterKnife和Otto这些基于注解的库的一些工作原理. 归纳而言,Android中的注解大概有以下好处 提高我们的开发效率 更早的发现程序的问题或者错误 更好的增加代码的描述能力 更加利于我们的一些规范约束 提供解决问题的更优解 准备工作 默认情况下,Android中的注解包并没有包括在framework中,它独立成一个单独的包,通常我们需要引入这个包. dependencies

Android中Textview超链接实现方式_Android

TextView中的超链接可以通过几种方式实现:一.Html.fromHtml方式 TextView,本身就支持部分的Html格式标签.这其中包括常用的字体大小颜色设置,文本链接等.使用起来也比较方便,只需要使用Html类转换一下即可: textView.setText(Html.fromHtml(str)); 代码如下: public class Test10Activity extends Activity { TextView textView ; @Override protected

Android 中的 Effective Java(速查表)

本文讲的是Android 中的 Effective Java(速查表), Effective Java 是一本被广泛认可的著作,它指明了在写 Java 代码时兼顾可维护性与效率的方式.Android 也是使用 Java 来开发的,这意味着前书中的所有建议仍旧可用,真的是这样吗?并不尽然.某些同学 认为书中的"大部分"建议都不适用于 Android 开发,但我认为并不是这样.我承认书中的部分建议确实不适用,因为并非所有 Java 特性都有针对 Android 优化(比如说枚举,序列化等等

布局-Android中不同xml文件中id可以重复么?

问题描述 Android中不同xml文件中id可以重复么? Android中如果两个layout布局文件中都有一个TextView控件,而且拥有同样的id,那样的话会乱套嘛? 比如我有a.xml,中间有控件TextView id为tv,有b.xml,中间有控件TextView id为tv,在R文件中能看到id内部类中只有一个tv常量,调用时是因为用之前是用色图ContentView设置了对应的布局所以不会混乱嘛,还是说就是会混乱的呢,我记得以前好像用的时候用混乱过,但是今天听老师讲课说是可行的,

【Android】Android中WIFI开发总结(一)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://smallwoniu.blog.51cto.com/3911954/1334951        WIFI就是一种无线联网技术,常见的是使用无线路由器.那么在这个无线路由器的信号覆盖的范围内都可以采用WIFI连接的方式进行联网.如果无线路由器连接了一个ADSL线路或其他的联网线路,则又被称为"热点".      在Android中对Wifi操作,android本身提供了

Android中多点触控以及手势的基础知识

现在一般的android手机都会使用电容触摸屏,所以基本上都会支持多点触控,同样在android系统中应用程序可以使用多点触控的事件来完成各种手势和场景需求,下面简单讲一下如何使用多点触控: 1.相关接口和事件介绍 MotionEvent.getAction() 对于单点触控,我们由MotionEvent.getAction()就可以得到以下几种事件:ACTION_DOWN.ACTION_UP等 MotionEvent.ACTION_MASK 而对于多点触控,我们需要由MotionEvent.g

Android中ContentProvider组件详解

一.Android四大组件 Android四大组件是Activity, Service, Content Provider,Broadcast Receiver. Activity作为程序界面,直接与用户交互 Service运行在后台,没有界面,完成特定的功能 ContentProvider维护应用数据,方便应用本身或其它应用访问 Broadcast Receiver提供异步广播消息接收机制,便于各应用/组件进行交互 二.什么是ContentProvider         ContentPro

Android性能优化篇:Android中如何避免创建不必要的对象

在编程开发中,内存的占用是我们经常要面对的现实,通常的内存调优的方向就是尽量减少内存的占用.这其中避免创建不必要的对象是一项重要的方面. Android设备不像PC那样有着足够大的内存,而且单个App占用的内存实际上是比较小的.所以避免创建不必要的对象对于Android开发尤为重要. 本文会介绍一些常见的避免创建对象的场景和方法,其中有些属于微优化,有的属于编码技巧,当然也有确实能够起到显著效果的方法. 使用单例 单例是我们常用的设计模式,使用这种模式,我们可以只提供一个对象供全局调用.因此单例