Button的onClick事件

一、打开Eclipse新建一个Android App项目

  在布局文件中添加两个Button控件

  如图:

  布局文件代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
    <!-- 第一个Button -->
    <Button
        android:id="@+id/testbutton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />
    
    <!-- 第二个Button -->
    <Button
        android:id="@+id/testbutton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

</LinearLayout>

二、

  编写Java代码

  代码如下:

  

package com.example.androidone;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

    private Button but;
    private Button but2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // setContentView(R.layout.activity_main);
        setContentView(R.layout.test);
           
        // Button onClick方法一:

        // 获取ID为testbutton1的Button控件
        but = (Button) findViewById(R.id.testbutton1);
        // 把该控件的Test设置为"Hello,android"
        but.setText("Hello,android");
        // 为该控件设置一个单击事件的监听
        but.setOnClickListener(new OnClickListener() {
            @Override
            //设置单击事件
            public void onClick(View arg0) {
                //设置Toast特效
                Toast.makeText(MainActivity.this, "Hello,android",
                        Toast.LENGTH_LONG).show();

            }
        });

        // Button onClick方法二:
        //获取ID为testbutton2的Button控件
        but2 = (Button) findViewById(R.id.testbutton2);
        // 把该控件的Test设置为"你好,安卓"
        but2.setText("你好,安卓");
        // 为该控件设置一个单击事件的监听
        //这里的new but(this)是new but类里面的一个but()方法
        //并把当前的上下文对象作为参数传入
        but2.setOnClickListener(new but(this));
    }
}

  but类代码如下:

package com.example.androidone;

import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;

public class but implements OnClickListener {
    
        //开辟一个上下文对象
        private Context con;
        //为上下文对象赋值
        public but(Context c){
            this.con = c;
        }
        //设置单击事件
        @Override
        public void onClick(View v) {
            //设置Toast特效
            Toast.makeText(
                    con,"你好,安卓",Toast.LENGTH_LONG
            ).show();
        }

}

方法一运行结果如下:

方法二运行结果如下:

  

原文地址:https://www.cnblogs.com/mrlcj/p/6075228.html