首页 > 代码库 > 第23章、OnFocuChangeListener焦点事件(从零开始学Android)

第23章、OnFocuChangeListener焦点事件(从零开始学Android)

 
在Android App应用中,OnFocuChangeListener焦点事件是必不可少的,我们在上一章的基础上来学习一下如何实现。

  基本知识点:OnFocuChangeListener事件

一、界面

  打开“res/layout/activity_main.xml”文件。

  1、分别从工具栏向activity拖出2个编辑框EditText。控件来自Form Widgets。

  

  2、打开activity_main.xml文件。   

[html] view plaincopy
  1. <LinearLayout  
  2.     xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     android:orientation="vertical" >  
  6.   
  7.     <EditText  
  8.         android:id="@+id/mobile"  
  9.         android:layout_width="190dp"  
  10.         android:layout_height="wrap_content"  
  11.         android:text="手机号码" />  
  12.   
  13.     <EditText  
  14.         android:id="@+id/address"  
  15.         android:layout_width="190dp"  
  16.         android:layout_height="wrap_content"  
  17.         android:text="地址" />  
  18.   
  19. </LinearLayout>  
  3、界面如下

  

二、OnItemSelectedListener事件 

  1、打开“src/com.genwoxue.onfocuchange/MainActivity.java”文件。

  然后输入以下代码:

  

[java] view plaincopy
  1. package com.genwoxue.onfocuchange;  
  2.   
  3. import android.os.Bundle;  
  4. import android.app.Activity;  
  5. import android.view.View;  
  6. import android.widget.EditText;  
  7. import android.view.View.OnClickListener;  
  8. import android.view.View.OnFocusChangeListener;  
  9. import android.widget.Toast;  
  10.   
  11. public class MainActivity extends Activity {  
  12.     //声明EditText  
  13.     private EditText  etMobile=null;  
  14.     private EditText  etAddress=null;  
  15.       
  16.     @Override  
  17.     protected void onCreate(Bundle savedInstanceState) {  
  18.         super.onCreate(savedInstanceState);  
  19.         setContentView(R.layout.activity_main);  
  20.         //获取EditText  
  21.         etMobile=(EditText)super.findViewById(R.id.mobile);  
  22.         etAddress=(EditText)super.findViewById(R.id.address);  
  23.         //注册OnClick、OnFocusChange监听器  
  24.         etMobile.setOnClickListener(new MobileOnClickListener());  
  25.         etMobile.setOnFocusChangeListener(new MobileOnFocusChanageListener());  
  26.         etAddress.setOnClickListener(new AddressOnClickListener());  
  27.         etAddress.setOnFocusChangeListener(new AddressOnFocusChanageListener());  
  28.     }  
  29.     //MobileOnClickListener单击监听器  
  30.     private class MobileOnClickListener implements OnClickListener{  
  31.         @Override  
  32.         public void onClick(View view){  
  33.             etMobile.setText("");  
  34.         }  
  35.     }  
  36.     //MobileOnFocusChanageListener焦点监听器  
  37.     private class MobileOnFocusChanageListener implements OnFocusChangeListener{  
  38.         @Override  
  39.         public void onFocusChange(View view,boolean hasFocus){  
  40.             if(view.getId()==etMobile.getId())  
  41.                 Toast.makeText(getApplicationContext(), "手机文本框获得焦点!",Toast.LENGTH_LONG).show();  
  42.         }  
  43.     }  
  44.     //MobileOnClickListener单击监听器  
  45.     private class AddressOnClickListener implements OnClickListener{  
  46.         @Override  
  47.         public void onClick(View view){  
  48.             etAddress.setText("");  
  49.         }         
  50.     }  
  51.     //MobileOnFocusChanageListener焦点监听器   
  52.     private class AddressOnFocusChanageListener implements OnFocusChangeListener{  
  53.         @Override  
  54.         public void onFocusChange(View view,boolean hasFocus){  
  55.             if(view.getId()==etAddress.getId())  
  56.                 Toast.makeText(getApplicationContext(), "地址文本框获得焦点!",Toast.LENGTH_LONG).show();  
  57.         }  
  58.     }  
  59. }  


 

  2、最终效果如下:  

  (获取焦点)

  

        (单击清除文本)