Android中的事件处理
在前面的教程中,我们已经了解了活动、意图和其他。本教程通过示例说明Android中的事件处理。
事件处理
事件是一种行动。它发生在用户与移动应用程序交互时。Android中的事件有很多不同的形式,比如击键、触摸输入等。触摸屏交互属于触摸事件的范畴。Android框架在一个先进先出(FIFO)队列中维护所有事件。顾名思义,事件处理程序在Android中处理事件。事件处理程序和事件侦听器是相关的概念。
事件监听器
它是一个包含回调方法的接口。当用户触发视图元素时,它将调用这些方法。以下是几个重要的回调方法:
OnClickListener():当用户点击按钮、文本或者图像等任何UI元素时,调用此事件侦听器。OnClick()事件处理程序用于处理此侦听器。
OnLongClickListener():当用户长时间点击任何UI元素或者按住某个UI元素几秒钟时,就会调用此方法。OnLongClick()事件处理程序用于处理此侦听器。
OnFocusChangeListener():当UI元素或者小部件失去焦点时调用此方法。用户只需向前导航。OnFocusChange()事件处理程序用于处理此侦听器。
OnKeyListener():当用户按下键盘上的某个键时调用此方法。OnKey()事件处理程序用于处理此事件。
OnTouchListener():当用户触摸屏幕上的任何UI元素(如按下或者释放按钮)时调用此方法。OnTouch()事件处理程序用于处理此侦听器。
OnMenuItemClickListener():当用户点击或者选择菜单时使用此方法item.OnMenuItemClick()事件处理程序用于处理此侦听器。
OnCreateContextMenuListener():OnCreateContextMenu()事件处理程序用于处理此侦听器。
事件处理实例
让我们开始创建一个如何在Android应用程序中使用事件处理程序和事件侦听器的示例。打开androidstudio并创建一个新项目。打开你的活动_主.xml并添加一个测试视图、一个图像视图和一个按钮。这是密码
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="MainActivity"> <TextView android:id="@+id/tv_welcome" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Welcome to " android:textColor="@android:color/holo_red_dark" android:textSize="40dp" android:layout_centerVertical="true" android:layout_centerHorizontal="true" <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageButton" android:src="@drawable/message" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="20dp" <Button android:id="@+id/button" android:layout_width="150dp" android:layout_height="wrap_content" android:background="@android:color/holo_red_dark" android:text="Change Color" android:textColor="@android:color/background_light" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="70dp" <TextView android:id="@+id/tv_java" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@android:color/holo_red_dark" android:textSize="40dp" android:layout_marginTop="21dp" android:text="Java Tutorial.net" android:layout_below="@+id/tv_welcome" android:layout_centerHorizontal="true" </RelativeLayout>
现在写代码主活动.java这里实现onClickListener(),当用户单击按钮时,文本的颜色将发生变化。最初文本的颜色是红色,第一次单击颜色将变为黑色,第二次单击时颜色将变为绿色,依此类推。这是密码
package com.example.admin.androideventhandling; import android.graphics.Color; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity { TextView welcome; TextView java; Button button; int i=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); welcome = (TextView)findViewById(R.id.tv_welcome); java = (TextView)findViewById(R.id.tv_java); button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(i==0) { welcome.setTextColor(Color.BLACK); java.setTextColor(Color.BLACK); button.setBackgroundColor(Color.BLACK); } if(i==1) { welcome.setTextColor(Color.GREEN); java.setTextColor(Color.GREEN); button.setBackgroundColor(Color.GREEN); } if(i==2) { welcome.setTextColor(Color.BLUE); java.setTextColor(Color.BLUE); button.setBackgroundColor(Color.BLUE); } if(i==3) { welcome.setTextColor(Color.MAGENTA); java.setTextColor(Color.MAGENTA); button.setBackgroundColor(Color.MAGENTA); i=0; } i++; } }); } }