歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android四種監聽方法

//main.xml文件

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:orientation="vertical" >  
  6.   
  7.   
  8.     <TextView   
  9.         android:layout_width="fill_parent"  
  10.         android:layout_height="wrap_content"  
  11.         android:text="@string/title"  
  12.         />  
  13.     <EditText   
  14.         android:id="@+id/myedittext"  
  15.         android:layout_width="fill_parent"  
  16.         android:layout_height="wrap_content"  
  17.         android:numeric="integer"  
  18.         />  
  19.     <Button   
  20.         android:id="@+id/mybutton1"  
  21.         android:layout_width="200dip"  
  22.         android:layout_height="wrap_content"  
  23.         android:text="@string/callout1"  
  24.         />  
  25.     <Button   
  26.         android:id="@+id/mybutton2"  
  27.         android:layout_width="200dip"  
  28.         android:layout_height="wrap_content"  
  29.         android:text="@string/callout2"  
  30.         />  
  31.           
  32.     <Button   
  33.         android:id="@+id/mybutton3"  
  34.         android:layout_width="200dip"  
  35.         android:layout_height="wrap_content"  
  36.         android:text="@string/callout3"  
  37.         />  
  38.           
  39.    <Button   
  40.         android:id="@+id/mybutton4"  
  41.         android:layout_width="200dip"  
  42.         android:layout_height="wrap_content"  
  43.         android:text="@string/callout4"  
  44.         />  
  45.   
  46.   
  47. </LinearLayout>  

------------------------------------------------------------------------------------------

//strings.xml文件

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.   
  4.  <string name="title">Android Call phone Application</string>  
  5.  <string name="app_name">復習打出電話</string>  
  6. <string name="callout1">撥打1</string>  
  7. <string name="callout2">撥打2</string>  
  8. <string name="callout3">撥打3</string>  
  9. <string name="callout4">撥打4</string>  
  10. </resources>  

------------------------------------------------------------------------------------------


//CallPhone2Activity.java 文件

  1. package sn.len.callphone;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.util.Log;  
  6. import android.view.View;  
  7. import android.view.View.OnClickListener;  
  8. import android.widget.Button;  
  9.   
  10. public class CallPhone2Activity extends Activity  implements OnClickListener   
  11. {  
  12.     @Override  
  13.     public void onCreate(Bundle savedInstanceState)  
  14.     {  
  15.         super.onCreate(savedInstanceState);  
  16.         setContentView(R.layout.main);  
  17.         Button button1=(Button)findViewById(R.id.mybutton1);  
  18.         Button button2=(Button)findViewById(R.id.mybutton2);  
  19.         Button button3=(Button)findViewById(R.id.mybutton3);  
  20.         Button button4=(Button)findViewById(R.id.mybutton4);  
  21.         //注冊監聽   
  22.         button1.setOnClickListener(this);  
  23.         button2.setOnClickListener(new Button2Listener());  
  24.           
  25.         //方法三,匿名內部類實現事件監聽器接口    
  26.         //匿名內部類實現事件監聽器   常用,如上同button2   
  27.         button3.setOnClickListener  
  28.         (  
  29.                 new View.OnClickListener()   
  30.                 {     
  31.                     @Override  
  32.                     public void onClick(View v)   
  33.                     {  
  34.                         Log.e("方法三""匿名內部類實現事件監聽器接口 ");  
  35.                     }  
  36.                 }  
  37.         );  
  38.       //方法四,外部類實現事件監聽器接口,很少用   
  39.         button4.setOnClickListener(new callOut(this));  
  40.           
  41.     }  
  42.     //方法一,自身實現監聽器接口     
  43.     //自身類實現事件監聽器接口  對於同一下XXXListener callback只能有一個實現   
  44.     @Override  
  45.     public void onClick(View v)   
  46.     {  
  47.         // TODO Auto-generated method stub   
  48.         Log.e("方法一""自己實現監聽");  
  49.     }  
  50.       
  51.       
  52.     //方法二,內部類實現事件監聽接口     
  53.     //內部類實現事件監聽器  常用,可以方便的訪問其外圍類的任意成員,一個內部類在此也可以代表解決問題的一個操作   
  54.     class Button2Listener implements OnClickListener  
  55.     {  
  56.   
  57.         @Override  
  58.         public void onClick(View v)   
  59.         {  
  60.             // TODO Auto-generated method stub   
  61.             Log.e("方法二""內部類實現事件監聽接口");  
  62.         }  
  63.           
  64.     }  
  65.       
  66. }  

備注:最常用為第二種和第三種。

------------------------------------------------------------------------------------------

//callOut.java 文件 -->第四種���法,外部類

  1. package sn.len.callphone;  
  2.   
  3. import android.app.Activity;  
  4. import android.util.Log;  
  5. import android.view.View;  
  6. import android.view.View.OnClickListener;  
  7.   
  8. public class callOut implements OnClickListener  
  9. {  
  10.     private Activity activity;  
  11.     public callOut(Activity activity)  
  12.     {  
  13.         this.activity=activity;  
  14.     }  
  15.     @Override  
  16.     public void onClick(View v)   
  17.     {  
  18.         //找ID   
  19.         //TextView textView = (TextView) activity.findViewById(R.id.resultView);     
  20.         Log.e("方法四""外部類實現事件監聽器接口 ");  
  21.     }  
  22.       
  23. }  

------------------------------------------------------------------------------------------

//效果





 

Copyright © Linux教程網 All Rights Reserved