📜  使用示例在Android中输入事件

📅  最后修改于: 2021-05-10 15:45:31             🧑  作者: Mango

在Android中,有一种方法可以拦截用户与应用程序的交互中的事件。考虑界面中的事件时,方法是从与用户进行交互的精确View对象中捕获事件。 View类提供了尝试执行此操作的方法。在将用于构成布局的各种View类中,您会注意到一些公共回调方法,这些方法对UI事件很有用。当相应的操作发生在对象上时,Android框架会调用这些方法。例如,当触摸视图(例如Button)时, onTouchEvent()方法将在其上命名为object。但是,要拦截此事件,必须扩展类并重写方法。但是,扩展每个View对象以处理此类事件是不切实际的。这就是为什么View类还包含一组带有回调的嵌套接口的原因,您可以简单地定义它们。这些接口称为事件侦听器,是您捕获用户交互以及UI的门票。

例如,如果一个按钮要回复click事件,则它必须注册以查看.onClickListener事件侦听器并实现相应的onClick()回调方法。在应用程序中,当检测到按钮单击事件时,Android框架将调用该特定视图的onClick()方法。

Android事件侦听器

事件侦听器是View类中的一个接口,其中包含一个回调方法。当用户与UI中的项目进行交互触发了向侦听器注册的View时,Android框架将调用这些方法。事件侦听器接口中包含以下回调方法:

Methods

Event Listeners

Description

onClick()

View.OnClickListener

This method is called when the user touches the item or focuses upon the item with the navigation-keys or trackball and presses the suitable “enter” key or presses down on the trackball.

onLongClick()

View.OnLongClickListener

This is called when the user either touches and holds the item, or focuses upon the item with the navigation-keys or trackball and presses and holds the suitable “enter” key or presses and holds down on the trackball (for one second).

onFocusChange()

View.OnFocusChangeListener

This is called when the user navigates onto or away from the item, using the navigation-keys or trackball.

onKey()

View.OnKeyListener

This is called when the user is focused on the item and presses or releases a hardware key on the device.

onTouch()

View.OnTouchListener

 This is called when the user acts qualified as a touch event, including a press, a release, or any movement gesture on the screen (within the bounds of the item).

onCreateContextMenu()

View.OnCreateContextMenuListener

This is called when a Context Menu is being built (as the result of a sustained “long click”).

Android事件监听器注册

事件注册是通过事件处理程序向事件侦听器注册的过程,以便在事件侦听器触发事件时调用该处理程序。本示例说明了如何为Button注册单击侦听器

Kotlin
protected void onCreate(savedValues: Bundle) {
    ...
    val button: Button = findViewById(R.id.button)
    // Register the onClick listener 
    button.setOnClickListener { view ->
        // do something when the button is clicked
    }
    ...
}


XML


  
    
    


Kotlin
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
  
class MainActivity : AppCompatActivity() {
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Register OnClickListener for button
        // call Click Handler method
        findViewById


Android事件处理程序

当我们从视图构建自定义组件时,事件处理程序对于定义几种回调方法很有用。以下是一些在Android应用程序中用于事件处理的常用回调方法。

Method

Description

onKeyDown() This method is called when a new key event occurs.
onKeyUp() This method is called when a key up event occurs.
onTrackballEvent() This method is called when a trackball motion event occurs.
onTouchEvent() This method is called when a touch screen motion event occurs.
onFocusChanged() This method is called when the view gains or loses focus.

我们已经了解了事件侦听器,事件处理程序及其回调方法。现在,我们将在我们的android应用程序中看到它们的实现。

Android输入事件示例

让我们看看在Android中实现Input Events的方法。请注意,我们将使用Kotlin语言实施此项目。

步骤1:在Android Studio中创建一个新项目

要在Android Studio中创建新项目,请参阅如何在Kotlin的Android Studio中创建/启动新项目。请注意,选择Kotlin作为编程语言。

步骤2:使用XML文件

为了设计UI,代码以XML形式存在于res \ layout文件夹下。它们被用在活动文件中,一旦XML文件进入活动范围,就可以访问XML中存在的组件。以下是activity_main.xml文件的代码。在代码内部添加了注释,以更详细地了解代码。

XML格式



  
    
    

步骤3:使用MainActivity文件

以下是MainActivity.kt文件的代码。在代码内部添加了注释,以更详细地了解代码。

科特林

import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
  
class MainActivity : AppCompatActivity() {
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Register OnClickListener for button
        // call Click Handler method
        findViewById

输出:

结论

Android通过事件侦听器和回调方法的概念弥合了用户界面和应用程序的后端代码之间的鸿沟。 Android View类定义了一组事件侦听器,可以将其注册到视图对象上。每个事件侦听器还具有与之关联的回调方法。当事件在用户界面的视图上发生时,该事件将放入事件队列中,并由Android运行时以先进先出的方式进行处理。如果发生事件的视图已注册与事件类型匹配的侦听器,则调用相应的回调方法。然后,此代码将执行活动所需的所有任务,然后再返回。需要一些回调方法来返回一个布尔值,以指示是否已使用事件或是否需要将事件传递给在视图上注册的任何其他事件侦听器。

想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处前往由我们的专家精心策划的指南,以使您立即做好行业准备!