焦点事件



main.xml文件中的代码为:

 

<?xml version="1.0" encoding="utf-8"?>

<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:selectAllOnFocus="true"

        android:text="请输入要查询的内容"/>

    <EditText

        android:id="@+id/msg"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:selectAllOnFocus="true"

        android:text="www.hao123.com"/>

    <TextView

        android:id="@+id/txt"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"/>

</LinearLayout>

 

 

 

 

 

MyFocusDemo.java程序中的代码为:

 

package com.tarena.focus;

 

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);

        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{

 

     public void onClick(View v) {

       MyFocusDemo.this.edit.setText(""); //清空文本

     }

   

    }

    private class OnFocusChangeListenerImpl implements OnFocusChangeListener{

 

     public void onFocusChange(View v, boolean hasFocus) { //表示操作的组件,hasFocus表示是否获得焦点

       if(hasFocus){ // 表示已经获得了焦点

          MyFocusDemo.this.txt.setText("文本输入组件获得了焦点");

        }

        else{

          if(MyFocusDemo.this.edit.getText().length() > 0){  //表示现在有数据

            MyFocusDemo.this.txt.setText("文本输入组件失去焦点,输入内容合法");

          }

          else{

            MyFocusDemo.this.txt.setText("文本输入组件失去焦点,输入内容不能为空");

          }

        }

     }

    }

}

相关文章
相关标签/搜索