android应用开发详解(六)--------------事件处理机制(续)

来源:互联网 发布:经济衰退 知乎 编辑:程序博客网 时间:2024/04/27 18:16

1、工程目录



2、TestEventActivity.java


package com.example.test_event;import android.os.Bundle;import android.app.Activity;import android.view.KeyEvent;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.view.View.OnFocusChangeListener;import android.view.View.OnKeyListener;import android.widget.Button;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.CompoundButton.OnCheckedChangeListener;import android.widget.EditText;//import android.widget.TextView;import android.widget.Toast;public class TestEventActivity extends Activity {// private TextView myTextview1, myTextview2, myTextView3;private Button myButton1, myButton2;private EditText myEditText1, myEditText2;private CheckBox myCheckbox1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.test_event);// myTextview1 = (TextView) findViewById(R.id.textviewLayout01);// myTextview2 = (TextView) findViewById(R.id.textviewLayout02);// myTextView3 = (TextView) findViewById(R.id.textviewLayout03);myButton1 = (Button) findViewById(R.id.buttonLayout01);myButton2 = (Button) findViewById(R.id.buttonLayout02);myEditText1 = (EditText) findViewById(R.id.edittextLayout01);myEditText2 = (EditText) findViewById(R.id.editviewLayout02);myCheckbox1 = (CheckBox) findViewById(R.id.checkboxLayout01);// 编辑文本框的按键事件myEditText1.setOnKeyListener(new OnKeyListener() {@Overridepublic boolean onKey(View arg0, int arg1, KeyEvent arg2) {// TODO Auto-generated method stubmyEditText1.setText("");return false;}});myEditText2.setOnKeyListener(new OnKeyListener() {@Overridepublic boolean onKey(View arg0, int arg1, KeyEvent arg2) {// TODO Auto-generated method stubmyEditText2.setText("");return false;}});// 编辑文本框的焦点事件myEditText1.setOnFocusChangeListener(new OnFocusChangeListener() {@Overridepublic void onFocusChange(View arg0, boolean arg1) {// TODO Auto-generated method stubToast.makeText(getApplicationContext(), myEditText1.getText(),Toast.LENGTH_LONG).show();}});myEditText2.setOnFocusChangeListener(new OnFocusChangeListener() {@Overridepublic void onFocusChange(View arg0, boolean arg1) {// TODO Auto-generated method stubToast.makeText(getApplicationContext(), myEditText2.getText(),Toast.LENGTH_LONG).show();}});// 多选框的选择事件myCheckbox1.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton arg0, boolean arg1) {// TODO Auto-generated method stubToast.makeText(getApplicationContext(),myCheckbox1.isChecked() + "", Toast.LENGTH_LONG).show();}});// 按钮的选择事件myButton1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubToast.makeText(getApplicationContext(), myButton1.getText(),Toast.LENGTH_LONG).show();}});myButton2.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubToast.makeText(getApplicationContext(), myButton2.getText(),Toast.LENGTH_LONG).show();}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.test_event, menu);return true;}}

3、布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <TableLayout        android:id="@+id/myTableLayout"        android:layout_width="wrap_content"        android:layout_height="wrap_content" >        <TableRow>            <TextView                android:id="@+id/textviewLayout01"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:text="用户名称" />            <EditText                android:id="@+id/edittextLayout01"                android:layout_width="fill_parent"                android:scrollHorizontally="true"                android:text="admin" />        </TableRow>        <TableRow>            <TextView                android:id="@+id/textviewLayout02"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:text="用户密码" />            <EditText                android:id="@+id/editviewLayout02"                android:layout_width="fill_parent"                android:password="true"                android:scrollHorizontally="true"                android:text="123" />        </TableRow>        <TableRow>            <TextView                android:id="@+id/textviewLayout03"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:text="自动登录" />            <CheckBox                android:id="@+id/checkboxLayout01"                android:layout_width="wrap_content"                android:layout_height="wrap_content" />        </TableRow>        <TableRow>            <Button                android:id="@+id/buttonLayout01"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:text="登录" />            <Button                android:id="@+id/buttonLayout02"                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:text="取消" />        </TableRow>    </TableLayout></LinearLayout>

【知识】

android中常见的事件监听器:

(1)点击事件View.onClickListener:当用户碰触到某个组件或者方向键被按下时产生该事件,处理方法是onClick()

(2)焦点事件View.OnFocusChangeListener:组件得到或者失去焦点时产生该事件,处理方法是onFocusChange()

(3)按键事件View.OnKeyListener:用户按下或者释放设备上的某个按键时产生,处理方法onKey()

(4)碰触事件View.OnTouchListener:设备具有碰触功能时,碰触屏幕产生该事件,处理方法onTouch()

(5)创建上下文菜单事件View.OnCreateContextMenuListener:创建上下文菜单时产生该事件,处理方法是onCreateContextMenu()

事件处理步骤:

(1)创建事件监听器

(2)给要响应事件的组件注册事件监听器

(3)在事件处理方法中编写实现代码

0 0
原创粉丝点击