標籤:
如題,在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); }}
以上是本人在學習中總結的按鈕的四種點擊事件,如有不足之處,請給予批評指正,謝謝!
Android中按鈕的點擊事件的四種寫法