歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android四種監聽方法

Android四種監聽方法

日期:2017/3/1 10:56:29   编辑:Linux編程

//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. <TextView
  7. android:layout_width="fill_parent"
  8. android:layout_height="wrap_content"
  9. android:text="@string/title"
  10. />
  11. <EditText
  12. android:id="@+id/myedittext"
  13. android:layout_width="fill_parent"
  14. android:layout_height="wrap_content"
  15. android:numeric="integer"
  16. />
  17. <Button
  18. android:id="@+id/mybutton1"
  19. android:layout_width="200dip"
  20. android:layout_height="wrap_content"
  21. android:text="@string/callout1"
  22. />
  23. <Button
  24. android:id="@+id/mybutton2"
  25. android:layout_width="200dip"
  26. android:layout_height="wrap_content"
  27. android:text="@string/callout2"
  28. />
  29. <Button
  30. android:id="@+id/mybutton3"
  31. android:layout_width="200dip"
  32. android:layout_height="wrap_content"
  33. android:text="@string/callout3"
  34. />
  35. <Button
  36. android:id="@+id/mybutton4"
  37. android:layout_width="200dip"
  38. android:layout_height="wrap_content"
  39. android:text="@string/callout4"
  40. />
  41. </LinearLayout>

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

//strings.xml文件

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

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


//CallPhone2Activity.java 文件

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

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

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

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

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

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

//效果





Copyright © Linux教程網 All Rights Reserved