zoukankan      html  css  js  c++  java
  • 一手遮天 Android

    项目地址 https://github.com/webabcd/AndroidDemo
    作者 webabcd

    一手遮天 Android - 输入: 按键事件

    示例如下:

    /input/KeyDemo1.java

    /**
     * 本例用于演示如何监听按键事件
     */
    
    package com.webabcd.androiddemo.input;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    import android.view.KeyEvent;
    import android.widget.TextView;
    
    import com.webabcd.androiddemo.R;
    
    import java.util.Locale;
    
    public class KeyDemo1 extends AppCompatActivity {
    
        private TextView mTextView1;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_input_keydemo1);
    
            mTextView1 = findViewById(R.id.textView1);
    
            // 注:
            // 弹出 AlertDialog 后则当前 Activity 就监听不到按键事件了,因为 Activity 失去焦点了
            // 此时,可以通过 AlertDialog 的 setOnKeyListener() 来监听按键事件,示例代码如下
            /*
            alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
                @Override
                public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
                    if (keyCode == KeyEvent.KEYCODE_BACK) {
                        // 不再需要其他人来处理此按键了
                        return true;
                    }
                    return false;
                }
            });
            */
        }
    
        // 按键按下的事件
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            // keyCode - 按键的键值(比如 KeyEvent.KEYCODE_A, KeyEvent.KEYCODE_1, KeyEvent.KEYCODE_BACK, KeyEvent.KEYCODE_MENU, KeyEvent.KEYCODE_VOLUME_DOWN, KeyEvent.KEYCODE_VOLUME_UP 等等)
            // event.getRepeatCount() - 按键按下不动时,会重复触发 onKeyDown 事件,这个方法返回的就是这个重复次数
            String msg = String.format(Locale.US, "onKeyDown keyCode:%d, repeatCount:%d", keyCode, event.getRepeatCount());
            mTextView1.setText(msg);
    
            // 返回 true 的意思就是不再需要其他人来处理此按键了
            // 比如你想按下返回键后不返回,那就在这里判断,如果按了返回键就直接 return true
            // return true;
    
            return super.onKeyDown(keyCode, event);
        }
    
        // 按键抬起的事件
        @Override
        public boolean onKeyUp(int keyCode, KeyEvent event) {
            String msg = String.format(Locale.US, "onKeyUp keyCode:%d", keyCode);
            mTextView1.setText(msg);
    
            return super.onKeyUp(keyCode, event);
        }
    }
    

    /layout/activity_input_keydemo1.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
    </LinearLayout>
    
    

    项目地址 https://github.com/webabcd/AndroidDemo
    作者 webabcd

  • 相关阅读:
    java-HTML&javaSkcript&CSS&jQuery&ajax
    HTML&javaSkcript&CSS&jQuery&ajax-XSS
    XSS-HTML&javaSkcript&CSS&jQuery&ajax-CSS
    XSS-HTML&javaSkcript&CSS&jQuery&ajax
    HTML&javaSkcript&CSS&jQuery&ajax-Css
    论坛IP地址追踪&路由器密码嗅探
    java ArrayList
    WireShark Flow capture analysis
    Software tips
    301. Remove Invalid Parentheses
  • 原文地址:https://www.cnblogs.com/webabcd/p/android_input_KeyDemo1.html
Copyright © 2011-2022 走看看