//监听事件的三种写法:匿名内部类,独立类监听按钮点击事件 , 实现接口
//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/p_w_picpathButton1"
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添加一个p_w_picpath,
* 当前图片上可以做一个有文本内容的图片)
*/
private Button loginButton;
private ImageButton p_w_picpathButton;
@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);
p_w_picpathButton = (ImageButton) findViewById(R.id.p_w_picpathButton1);
//监听事件通过第一种方式实现(匿名内部类)
/*loginButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//在当前onClick方法中监听点击Button的动作
System.out.println("匿名内部类事件的监听事件");
}
});*/
//监听事件通过第二种方式实现(独立类实现)
/*loginButton.setOnClickListener(listener);*/
//监听事件通过第三种方式实现(接口实现)
//先实现一个接口 implements OnClickListener
p_w_picpathButton.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", "独立类实现的监听事件");
}
};*/
}
转载于:https://blog.51cto.com/xiaoshitou/1603123