Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android中按鈕的點擊事件的四種寫法

Android中按鈕的點擊事件的四種寫法

編輯:關於Android編程

如題,在Android中按鈕的點擊事件有四種寫法,如下圖。

界面為四個Button+一個TextView+一個ImageView

\

activity_main布局文件如下:

 


主界面實現的代碼如下:

 

 

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);
    }
}

以下為拆分後單獨的代碼:

 

方法一:匿名內部類方法

 

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屬性:

 

 

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);
    }
}

以上是本人總結的按鈕的四種點擊事件,如有不足之處,請給予批評指正,謝謝!
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved