监听事件的三种写法

//监听事件的三种写法:匿名内部类,独立类监听按钮点击事件 , 实现接口

//strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">EventMonitor</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
    <string name="button_name">登陆</string>
</resources>

//activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.vincentlin.eventmonitor.MainActivity" >

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/button_name" />
    <ImageButton
        android:id="@+id/imageButton1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp"
        android:src="@drawable/ic_launcher" />
</RelativeLayout>

//MainActivity.java

package com.vincentlin.eventmonitor;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
public class MainActivity extends Activity implements OnClickListener{
 /**
  * Button---可以设置文本内容一个按钮
  * ImageButton(src属性,background属性-不可以设置文本内容,但可以通过用background以及src添加一个image,
     * 当前图片上可以做一个有文本内容的图片)
  */
 private Button loginButton;
 private ImageButton imageButton;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  
  /*
   * 1)初始化当前所需控件,如何初始化一个控件?
   * findViewById--返回的是一个View对象
   * findViewById如何查找对应的view的id
   * 2)设置Button的监听器,通过监听器实现我们点击Button要操作的事情
   */
  loginButton = (Button) findViewById(R.id.button1);
  imageButton = (ImageButton) findViewById(R.id.imageButton1);
  //监听事件通过第一种方式实现(匿名内部类)
  /*loginButton.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View v) {
    //在当前onClick方法中监听点击Button的动作
    System.out.println("匿名内部类事件的监听事件");
   }
  });*/
  //监听事件通过第二种方式实现(独立类实现)
  /*loginButton.setOnClickListener(listener);*/
  
  //监听事件通过第三种方式实现(接口实现)
  //先实现一个接口 implements OnClickListener
  imageButton.setOnClickListener(this);
  
 }
 @Override
 public void onClick(View v) {
  Log.i("tag", "接口事件监听事件");
  
 }
 
 /*OnClickListener listener = new OnClickListener() {
  
  @Override
  public void onClick(View v) {
   //System.out.println("独立类实现的监听事件");
   Log.i("tag", "独立类实现的监听事件");
  }
 };*/
 
}

你可能感兴趣的:(接口实现,匿名内部类实现,独立类实现)