℃江让您从精通到入门:OnClick事件监听的几种方式

笔译笔,不如人之比,见一见,不与人为鉴。苍天下, 弃细雨,混泪难断谁更惆;苍穹再,散绸绫,铺洒漫染何出犹。


今天笔者来说下Android中OnClick事件监听的几种书写方式。

  • 匿名内部类的方式
package com.example.testofonclick;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    //1、声明控件
    private Button btnCancel;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //2、绑定事件
        btnLogin = (Button) findViewById(R.id.btn_cancel);
        //3、设置触发事件
        btnLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                finish();
Toast.makeText(MainActivity.this, "已经点击。", Toast.LENGTH_SHORT).show();

            }
        });

    }
}
  • 让MainActivity 实现(Implements)View.OnClickListener方法:
package com.example.testofonclick;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    //1、声明控件
    private Button btnCancel;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }

    private void initView() {
        //2、绑定事件
        btnCancel= (Button) findViewById(R.id.btn_cancel);
        //3、设置触发事件
        btnCancel.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {

        switch (view.getId()){
            case R.id.btn_cancel:
Toast.makeText(MainActivity.this, "已经点击。", Toast.LENGTH_SHORT).show();

                finish();
                break;
        }

    }
}
  • 在布局文件中给定一个OnClik(代码如下):
<Button
    android:onClick="btnCancel"
    android:id="@+id/btn_login"
    android:text="点击事件(点击退出)"
    android:layout_width="368dp"
    android:layout_height="wrap_content"
    tools:layout_editor_absoluteY="0dp"
    tools:layout_editor_absoluteX="8dp" />

之后再直接调用:

package com.example.testofonclick;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }
    public void btnCancel(View view){
        finish();
    }
}
  • 代码实现如下:
package com.example.testofonclick;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    private Button btnLogin;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnLogin = (Button) findViewById(R.id.btn_login);

        btnLogin.setOnClickListener(new MyClick());

    }
    private class MyClick implements View.OnClickListener{

        @Override
        public void onClick(View view) {
            switch (view.getId()){
                case R.id.btn_login:
Toast.makeText(MainActivity.this, "已经点击。", Toast.LENGTH_SHORT).show();

                    finish();
                    break;
            }
        }
    }

}
  • 普通方法如下:
package com.example.testofonclick;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private Button btnCancel;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnCancel= (Button) findViewById(R.id.btn_login);

        btnCancel.setOnClickListener(click);

    }
    //创建监听对象
    Button.OnClickListener click = new Button.OnClickListener(){

        @Override
        public void onClick(View view) {
            Toast.makeText(MainActivity.this, "已经点击。", Toast.LENGTH_SHORT).show();
            finish();
        }
    };

}

私人网站:http://www.cnblogs.com/sheshidujiang/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值