?焦点事件是指针对于一个组件的状态的监听,例如,现在有两个文本输入组件(editA和editB),当用户选中editA组件准备输入数据的时候,对于editA就表示获得了焦点,如图6-11所示,而当用户现在离开了editA而要输入editB时,则editA将丢失焦点,同时对应的editB将获得焦点。
-
<?xml version="1.0" encoding="utf-8"?>
-
<LinearLayout ? 定义线型布局管理器
-
xmlns:android=""
-
android:orientation="vertical" ? 所有组件垂直摆放
-
android:layout_width="fill_parent“ ? 布局管理器宽度为屏幕宽度
-
android:layout_height="fill_parent"> ? 布局管理器高度为屏幕高度
-
-
android:id="@+id/edit" ? 组件ID,程序中使用
-
android:layout_width="fill_parent” ? 组件宽度为屏幕宽度
-
android:layout_height="wrap_content“ ? 组件高度为文字高度
-
android:text=“请输入查询内容” /> ? 默认文字
-
-
android:id="@+id/msg" ? 组件ID,程序中使用
-
android:layout_width="fill_parent” ? 组件宽度为屏幕宽度
-
android:layout_height="wrap_content“ ? 组件高度为文字高度
-
android:text="www.mldnjava.cn" /> ? 默认文字
-
-
android:id="@+id/txt" ? 组件ID,程序中使用
-
android:layout_width="fill_parent“ ? 组件宽度为屏幕宽度
-
android:layout_height="wrap_content" /> ? 组件高度为文字高度
-
</LinearLayout>
-
package org.lxh.demo;
-
import android.app.Activity;
-
import android.os.Bundle;
-
import android.view.View;
-
import android.view.View.OnClickListener;
-
import android.view.View.OnFocusChangeListener;
-
import android.widget.EditText;
-
import android.widget.TextView;
-
public class MyFocusDemo extends Activity {
-
private EditText edit = null; // 定义文本输入框
-
private TextView txt = null; // 定义文本组件
-
@Override
-
public void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState); // 父类onCreate()
-
super.setContentView(R.layout.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()) ; // 设置单击事件
-
}
-
private class OnClickListenerImpl implements OnClickListener { // 单击事件
-
@Override
-
public void onClick(View view) {
-
MyFocusDemo.this.edit.setText("") ; // 清空文本
-
}
-
}
-
private class OnFocusChangeListenerImpl implements OnFocusChangeListener {
-
@Override
-
public void onFocusChange(View v, boolean hasFocus) {
-
if (v.getId() == MyFocusDemo.this.edit.getId()) { // 判断触发事件的组件
-
if (hasFocus) {
-
MyFocusDemo.this.txt.setText("文本输入组件获得焦点。");// 设置显示文字
-
} else {
-
if(MyFocusDemo.this.edit.getText().length() > 0) { // 判断输入数据长度
-
MyFocusDemo.this.txt.setText("文本输入组件失去焦点,输入内容合法。");
-
} else {
-
MyFocusDemo.this.txt.setText("文本输入组件失去焦点,输入内容不能为空。");
-
}
-
}
-
}
-
}
-
}
-
}
020606_焦点事件.ppt
阅读(1444) | 评论(0) | 转发(1) |