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

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;

	@Override
	protected 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() {

			@Override
			public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
				// TODO Auto-generated method stub
				myEditText1.setText("");
				return false;
			}
		});
		myEditText2.setOnKeyListener(new OnKeyListener() {

			@Override
			public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
				// TODO Auto-generated method stub
				myEditText2.setText("");
				return false;
			}
		});
		// 编辑文本框的焦点事件
		myEditText1.setOnFocusChangeListener(new OnFocusChangeListener() {

			@Override
			public void onFocusChange(View arg0, boolean arg1) {
				// TODO Auto-generated method stub
				Toast.makeText(getApplicationContext(), myEditText1.getText(),
						Toast.LENGTH_LONG).show();

			}
		});
		myEditText2.setOnFocusChangeListener(new OnFocusChangeListener() {

			@Override
			public void onFocusChange(View arg0, boolean arg1) {
				// TODO Auto-generated method stub
				Toast.makeText(getApplicationContext(), myEditText2.getText(),
						Toast.LENGTH_LONG).show();

			}
		});
		// 多选框的选择事件
		myCheckbox1.setOnCheckedChangeListener(new OnCheckedChangeListener() {

			@Override
			public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
				// TODO Auto-generated method stub
				Toast.makeText(getApplicationContext(),
						myCheckbox1.isChecked() + "", Toast.LENGTH_LONG).show();
			}
		});
		// 按钮的选择事件
		myButton1.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Toast.makeText(getApplicationContext(), myButton1.getText(),
						Toast.LENGTH_LONG).show();
			}
		});
		myButton2.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Toast.makeText(getApplicationContext(), myButton2.getText(),
						Toast.LENGTH_LONG).show();
			}
		});
	}

	@Override
	public 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)在事件处理方法中编写实现代码

时间: 2024-10-26 23:22:00

android应用开发详解(六)--------------事件处理机制(续)的相关文章

Android相机开发详解(一)

Android相机开发详解(一) 请支持原创,尊重原创,转载请注明出处:http://blog.csdn.net/kangweijian(来自kangweijian的csdn博客) Android相机开发能够实现打开相机,前后摄像头切换,摄像预览,保存图片,浏览已拍照图片等相机功能. Android相机开发详解(一)主要实现打开相机,摄像预览,前后置摄像头切换,保存图片等四个功能. Android相机开发详解(二)主要实现翻页浏览相片,触控缩放浏览图片,删除图片,发送图片等四个功能. Andro

Android WebView 开发详解

Android WebView 开发详解 1.概览: Android WebView 做为承载网页的载体控件,他在网页显示的过程中会产生一些事件,并回调给我们的应用程序,以便我们在网页加载过程中做应用程序想处理的事情.比如说客户端需要显示网页加载的进度.网页加载发生错误等等事件. WebView提供两个事件回调类给应用层,分别为WebViewClient,WebChromeClient开发者可以继承这两个类,接手相应事件处理.WebViewClient 主要提供网页加载各个阶段的通知,比如网页开

Android开发经典书籍下载——《Android 4高级编程》《疯狂Android讲义》《Android应用开发详解(郭宏志)》《Android应用案例开发大全》《Android 3D游戏开发技术》

这是我收集的关于android开发方面的经典书籍,高清PDF电子版,可以在我的百度网盘免费下载,希望对需要的朋友有帮助. 目录: <Android 4高级编程>(附完整源代码) <疯狂Android讲义> <Android应用开发详解(郭宏志)> <Android应用案例开发大全> <Android 3D游戏开发技术> <Android内核剖析 柯元旦> <深入理解Android  卷1> <深入理解Android

【转】【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料

转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9057257 由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字和图片等这样的效果,几经波折,查阅了一番资料,做了一个Demo.实现起来的效果还是不错的,不敢独享,决定写一个总结的教程,供大家互相交流.学习和参考,博主只求能和大家共同进步.希望能多多支持! 这篇文章中,我们使用到了Share SDK,它是为iOS.Android.WP8的APP提供社会化功能的一

Android AIDL使用详解_Android IPC 机制详解

一.概述 AIDL 意思即 Android Interface Definition Language,翻译过来就是Android接口定义语言,是用于定义服务器和客户端通信接口的一种描述语言,可以拿来生成用于IPC的代码.从某种意义上说AIDL其实是一个模板,因为在使用过程中,实际起作用的并不是AIDL文件,而是据此而生成的一个IInterface的实例代码,AIDL其实是为了避免我们重复编写代码而出现的一个模板 设计AIDL这门语言的目的就是为了实现进程间通信.在Android系统中,每个进程

Android WebView 开发详解(一)

转载请注明出处  http://blog.csdn.net/typename/article/details/39030091 powered by meichal zhao 概览: Android WebView在Android平台上是一个特殊的View, 他能用来显示网页,这个类可以被用来在你的app中仅仅显示一张在线的网页,还可以用来开发浏览器.WebView内部实现是采用渲染引擎来展示view的内容,提供网页前进后退,网页放大,缩小,搜索,前端开发者可以使用web inspector(A

Android Widget 开发详解(二)

转载请标明出处:http://blog.csdn.net/sk719887916/article/details/47027263 不少开发项目中都会有widget功能,别小瞧了它,他也是android的七大组件之一,对widget陌生的朋友可以阅读下我的上篇文章< Android Widget工作原理详解(一)> 今天我们就实现一个可以滑动的widet,熟悉下一个普通widget的开发. 一 创建AppWidgetProvider 此类是widget的控制核心,主要控制添加,删除,更新等.他

Android WebView 开发详解(二)

转载请注明出处  http://blog.csdn.net/typename/article/details/39495409 powered by meichal zhao 概览: Android WebView 做为承载网页的载体控件,他在网页显示的过程中会产生一些事件,并回调给我们的应用程序,以便我们在网页加载过程中做应用程序想处理的事情.比如说客户端需要显示网页加载的进度.网页加载发生错误等等事件. WebView提供两个事件回调类给应用层,分别为WebViewClient,WebChr

Android WebView 开发详解(三)

转载请注明出处   http://blog.csdn.net/typename/article/details/40302351 powered by miechal zhao 概览 Android WebView提供展示网页,也提供我们应用程序对网页加载的一些定制,比如我们为了减少网络数据可以设置当前加载的页面不能显示图片,如果是pc网址在pad上访问我们可以提供用户一种概览模式的浏览方式,可以提供放大网页字体等定制功能.Android 提供管理WebView的一些setting的类WebSe