//监听事件的三种写法:匿名内部类,独立类监听按钮点击事件 , 实现接口
//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", "独立类实现的监听事件"); } };*/ }