从零开始学android:Android事件处理—焦点事件
来源:互联网 发布:金蝶软件多少钱 编辑:程序博客网 时间:2024/05/17 00:14
焦点事件
焦点事件是指针对于一个组件的状态的监听,例如,现在有两个文本输入组件(editA和editB),当用户选中editA组件准备输入数据的时候,对于editA就表示获得了焦点,如图6-11所示,而当用户现在离开了editA而要输入editB时,则editA将丢失焦点,同时对应的editB将获得焦点。
在android.view.View类之中专门提供了一个“View.OnFocusChangeListener”接口用于监听焦点改变事件,而所有的组件上都存在有监听焦点变化的方法:
监听焦点变化:public void setOnFocusChangeListener(View.OnFocusChangeListener l)
范例:
布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <EditText android:id="@+id/edit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="请输入查询内容" /><EditText android:id="@+id/msg" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="www.baidu.com" /> <TextView android:id="@+id/txt" android:layout_width="fill_parent" android:layout_height="wrap_content" /></LinearLayout>
程序文件:
package com.richard.onfocuschangelistener;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.view.View.OnFocusChangeListener;import android.widget.EditText;import android.widget.TextView;public class MainActivity extends Activity {private EditText edit = null;private TextView txt = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main); this.edit = (EditText) super.findViewById(R.id.edit);this.txt = (TextView) super.findViewById(R.id.txt);this.edit.setOnFocusChangeListener(new OnFocusChangeListenerImpl());this.edit.setOnClickListener(new OnClickListenerImpl());}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}private class OnClickListenerImpl implements OnClickListener{@Overridepublic void onClick(View view) {MainActivity.this.edit.setText("");//清空文本}}private class OnFocusChangeListenerImpl implements OnFocusChangeListener{@Overridepublic void onFocusChange(View view, boolean hasFocus) {if(view.getId() == MainActivity.this.edit.getId()){if(hasFocus){MainActivity.this.txt.setText("文本输入获得焦点");//设置显示文字}else{if(MainActivity.this.edit.getText().length()>0) {//判断输入数据长度MainActivity.this.txt.setText("文本输入组件失去焦点,输入内容合法.");} else {MainActivity.this.txt.setText("文本输入组件失去焦点,输入内容不能为空。");}}}}}}
展示效果:
- 从零开始学android:Android事件处理—焦点事件
- 从零开始学android:Android事件处理—单击事件
- 从零开始学android:Android事件处理—长按事件
- 从零开始学android:Android事件处理—键盘事件
- 从零开始学android:Android事件处理—触摸事件
- 从零开始学android:Android事件处理—单选钮与OnCheckedChangeListener
- 第23章、OnFocuChangeListener焦点事件(从零开始学Android)
- 第23章、OnFocuChangeListener焦点事件(从零开始学Android)
- 第23章、OnFocuChangeListener焦点事件(从零开始学Android)
- 从零开始学android<android事件的处理方式.二十四.>
- 一步一步学android之事件篇——焦点事件
- 从零开始学android:Android事件处理—下拉列表框与OnItemSelectedListener
- 从零开始学android:Android事件处理—监听日期与时间的改变
- Android--ImageButton的焦点及事件处理
- 开发android机顶盒应用 事件,焦点处理
- 开发android机顶盒应用 事件,焦点处理
- 开发android机顶盒应用 事件,焦点处理
- Android 事件传递与焦点处理(tv)
- rails gem change the source
- C#之WebClient学习笔记
- 收集到一些关于python的文章,存起来慢慢看。。。
- SQL学习基础
- 一位数据挖掘成功人士给数据挖掘在读研究生的建议
- 从零开始学android:Android事件处理—焦点事件
- 九度OJ 1535 重叠的最长子串
- .NET(C#) Internals: .NET Framework中已使用的设计模式
- BCM VOIP 基本呼叫流程分析
- crack the code interview 1.7
- Fio 使用小结
- Objective-C中的instancetype和id关键字
- 项目经理能力要求
- [置顶] DirectShow 配置环境