如题,在Android中按钮的点击事件有四种写法,如下图。
界面为四个Button+一个TextView+一个ImageView
activity_main布局文件如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:padding="5dp"
tools:context=".MainActivity">
<Button
android:id="@+id/btn_click1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/click1" />
<Button
android:id="@+id/btn_click2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/click2" />
<Button
android:id="@+id/btn_click3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/click3" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="click4"
android:text="@string/click4" />
<TextView
android:id="@+id/tv_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/holo_red_light"
android:textSize="18sp"/>
<ImageView
android:id="@+id/iv_yc"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
主界面实现的代码如下:
package clickevent.ithema.com.clickevent;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends Activity implements View.OnClickListener {
private TextView tv_text;
private Button btn_click1,btn_click2,btn_click3;
private ImageView iv_yc;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_text = (TextView) findViewById(R.id.tv_text);
iv_yc= (ImageView) findViewById(R.id.iv_yc);
btn_click1 = (Button) findViewById(R.id.btn_click1);
btn_click2 = (Button) findViewById(R.id.btn_click2);
btn_click3 = (Button) findViewById(R.id.btn_click3);
btn_click2.setOnClickListener(this);//这是实现接口点击的方法
btn_click3.setOnClickListener(new MyListener());//这是自定义类实现接口点击的方法
btn_click1.setOnClickListener(new View.OnClickListener() {//实现匿名内部类点击的方法
@Override
public void onClick(View v) {
tv_text.setText("这是匿名内部类点击的方法,适用于只用一次点击方法");
iv_yc.setImageResource(R.drawable.click1);
}
});
}
@Override
public void onClick(View v) {
tv_text.setText("这是实现接口点击的方法");
iv_yc.setImageResource(R.drawable.click2);
}
class MyListener implements View.OnClickListener {
@Override
public void onClick(View v) {
tv_text.setText("这是自定义类实现接口点击的方法");
iv_yc.setImageResource(R.drawable.click3);
}
}
public void click4(View v){
tv_text.setText("这是在xml文件中定义属性的方法");
iv_yc.setImageResource(R.drawable.click4);
}
}</span><span style="font-size:18px;font-weight: bold;">
</span>
以下为拆分后单独的代码:
方法一:匿名内部类方法
package clickevent.ithema.com.clickevent;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
/**
* Created by Administrator on 2016/7/16.
*/
public class Click1 extends Activity{
private TextView tv_text;//文本框
private ImageView iv_yc;//图片框
private Button btn_click1;//按钮
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_text= (TextView) findViewById(R.id.tv_text);//查找到文本框的ID
iv_yc= (ImageView) findViewById(R.id.iv_yc);//查找到图片框的ID
btn_click1= (Button) findViewById(R.id.btn_click1);//查找到按钮的ID
btn_click1.setOnClickListener(new View.OnClickListener() { //给按钮设置监听
@Override//按钮点击解发的方法
public void onClick(View v) {
//设置要显示的文字
tv_text.setText("这是匿名内部类点击的方法,适用于只用一次点击方法");
//设置要显示的图片
iv_yc.setImageResource(R.drawable.click1);
}
});
}
}方法二:实现接口
package clickevent.ithema.com.clickevent;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
/**
* Created by Administrator on 2016/7/16.
*/
public class Click2 extends Activity implements View.OnClickListener {//实现监听接口
private TextView tv_text;//文本框
private ImageView iv_yc;//图片框
private Button btn_click2;//按钮
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_text= (TextView) findViewById(R.id.tv_text);//查找到文本框的ID
iv_yc= (ImageView) findViewById(R.id.iv_yc);//查找到图片框的ID
btn_click2= (Button) findViewById(R.id.btn_click2); //查找到按钮的ID
btn_click2.setOnClickListener(this);//给按钮设置监听
}
@Override//按钮点击解发的方法
public void onClick(View v) {
//设置要显示的文字
tv_text.setText("这是实现接口点击的方法");
//设置要显示的图片
iv_yc.setImageResource(R.drawable.click2);
}
}
方法三:自定义类实现接口
package clickevent.ithema.com.clickevent;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
/**
* Created by Administrator on 2016/7/16.
*/
public class Click3 extends Activity {
private TextView tv_text;//文本框
private ImageView iv_yc;//图片框
private Button btn_click3;//按钮
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_text = (TextView) findViewById(R.id.tv_text);//查找到文本框的ID
iv_yc= (ImageView) findViewById(R.id.iv_yc);//查找到图片框的ID
btn_click3 = (Button) findViewById(R.id.btn_click3);//查找到按钮的ID
btn_click3.setOnClickListener(new MyListener());//给按钮设置监听
}
class MyListener implements View.OnClickListener {//自定义MyListener类实现OnClickListener接口
@Override
public void onClick(View v) {
//设置要显示的文字
tv_text.setText("这是自定义类实现接口点击的方法");
//设置要显示的图片
iv_yc.setImageResource(R.drawable.click3);
}
}
}
方法四:在xml文件中定义onClick属性
1、在xml文件中定义onClick属性:
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="click4"
android:text="@string/click4" />2、在java代码中写点击的方法:
package clickevent.ithema.com.clickevent;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
/**
* Created by Administrator on 2016/7/16.
*/
public class Click4 extends Activity {
private TextView tv_text;//文本框
private ImageView iv_yc;//图片框
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_text = (TextView) findViewById(R.id.tv_text);//查找到文本框的ID
iv_yc= (ImageView) findViewById(R.id.iv_yc);//查找到图片框的ID
}
public void click4(View v){
//设置要显示的文字
tv_text.setText("这是在xml文件中定义属性的方法");
//设置要显示的图片
iv_yc.setImageResource(R.drawable.click4);
}
}
以上是本人在学习中总结的按钮的四种点击事件,如有不足之处,请给予批评指正,谢谢!