按键事件
按键事件主要在EditText中使用,用于监听输入的内容。在布局文件中加入一个 EditText。
MainActivity对应的布局文件如下:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:id="@+id/liner_click"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical"
- tools:context=".MainActivity">
- <Button
- android:id="@+id/button_click"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="我是button按钮"/>
- <TextView
- android:id="@+id/text_click"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="我是textView"/>
- </LinearLayout>
(2)用 Activity实现按键事件的事件处理接口View.OnKeyListener。
(3)实现按键事件处理接口中的方法.
- MainActivity中的代码如下:
- package com.rfstar.keytest;
- import androidx.appcompat.app.AppCompatActivity;
- import android.os.Bundle;
- import android.view.KeyEvent;
- import android.view.View;
- import android.widget.EditText;
- import android.widget.Toast;
- public class MainActivity extends AppCompatActivity {
- EditText editText;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- editText=findViewById(R.id.edti);
- editText.setOnKeyListener(new View.OnKeyListener() {
- @Override
- public boolean onKey(View view, int i, KeyEvent keyEvent) {
- switch (keyEvent.getAction())
- {
- case KeyEvent.ACTION_DOWN:
- Toast.makeText(MainActivity.this,"按键落下",Toast.LENGTH_LONG).show();
- break;
- case KeyEvent.ACTION_UP:
- EditText edti=(EditText)view;
- Toast.makeText(MainActivity.this,"按键谈起,键入的是:"+edti.getText().toString(),Toast.LENGTH_LONG).show();
- break;
- }
- return false;
- }
- });
- }
- }
实现的onKey(View view,int keyCode,KeyEvent event)方法中有3个参数∶View参数在之前已经讲过,指代操作事件的 View对象; keyCode 指的是输入按键的编码数字;event 用来表示按键的落下与弹起状态。在实例中,用 event.getAction()获取了按键的状态,并使用 switch进行判断,对落下与弹起的状态进行处理。
这里的返回值很重要,如果返回的是 true,就意味着系统只处理我们代码中的这些事件,比如本例中的Toast,而不再处理其他动作,如向 EditText中写入文本。所以,一般情况下我们都会使用 false。读者在学习时一定要牢记这一点。
运行程序,在向 EditText 中输入文本时捕获到的按键落下状态,当输入内容后,按键弹起,我们可以捕获到输入的内容,并通过 Toast 展示输入的内容,效果如下图:
所以一般在开发中我们并不会在设置了点击事件后再去设置触摸事件。
源码下载请关注大鸟科创空间,回复andriod studio进行下载
作者: 大鸟科创空间, 来源:面包板社区
链接: https://mbb.eet-china.com/blog/uid-me-3949041.html
版权声明:本文为博主原创,未经本人允许,禁止转载!
关闭
站长推荐
/2
简单qqq 2021-5-5 09:01
yzw92 2021-5-3 09:26
我的果果超可爱 2021-5-1 20:13