如题,在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); } }
以上是本人在学习中总结的按钮的四种点击事件,如有不足之处,请给予批评指正,谢谢!
时间: 2024-10-02 18:57:00