zoukankan      html  css  js  c++  java
  • Android:View点击事件监听的四种方式

    (一)在布局文件中为控件设置onClick属性的指定点击方法

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     xmlns:tools="http://schemas.android.com/tools"
     4     android:id="@+id/activity_main"
     5     android:layout_width="match_parent"
     6     android:layout_height="match_parent"
     7     android:paddingBottom="@dimen/activity_vertical_margin"
     8     android:paddingLeft="@dimen/activity_horizontal_margin"
     9     android:paddingRight="@dimen/activity_horizontal_margin"
    10     android:paddingTop="@dimen/activity_vertical_margin"
    11     tools:context="com.example.myapplication.MainActivity">
    12 
    13     <Button
    14         android:layout_width="wrap_content"
    15         android:layout_height="wrap_content"
    16         android:id="@+id/b1"
    17         android:onClick="b1"
    18         />
    19 </RelativeLayout>
     1 package com.example.myapplication;
     2 
     3 import android.support.v7.app.AppCompatActivity;
     4 import android.os.Bundle;
     5 import android.view.View;
     6 import android.widget.Toast;
     7 
     8 public class MainActivity extends AppCompatActivity {
     9 
    10     protected void onCreate(Bundle savedInstanceState) {
    11         super.onCreate(savedInstanceState);
    12         setContentView(R.layout.activity_main);
    13     }
    14     public void b1(View view){
    15         Toast.makeText(this,"b1",Toast.LENGTH_LONG).show();
    16     }
    17 }

    (二)创建一个内部类,实现OnClickListener接口,并重写onClick()方法,之后用setOnClickListener()方法绑定内部类

    (setOnClickListener()方法,需要获取一个要执行类(动作))

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     xmlns:tools="http://schemas.android.com/tools"
     4     android:id="@+id/activity_main"
     5     android:layout_width="match_parent"
     6     android:layout_height="match_parent"
     7     android:paddingBottom="@dimen/activity_vertical_margin"
     8     android:paddingLeft="@dimen/activity_horizontal_margin"
     9     android:paddingRight="@dimen/activity_horizontal_margin"
    10     android:paddingTop="@dimen/activity_vertical_margin"
    11     tools:context="com.example.myapplication.MainActivity">
    12 
    13     <Button
    14         android:layout_width="wrap_content"
    15         android:layout_height="wrap_content"
    16         android:id="@+id/b1"
    17 
    18         />
    19 </RelativeLayout>
     1 package com.example.myapplication;
     2 
     3 import android.support.v7.app.AppCompatActivity;
     4 import android.os.Bundle;
     5 import android.view.View;
     6 import android.widget.Button;
     7 import android.widget.Toast;
     8 
     9 public class MainActivity extends AppCompatActivity {
    10 
    11     private Button b1;
    12     protected void onCreate(Bundle savedInstanceState) {//Bundle savedInstanceState 当前实例的一种状态

    13 super.onCreate(savedInstanceState); 14 setContentView(R.layout.activity_main);

    15 b1=(Button) findViewById(R.id.b1);//获取事件源

    16 b1.setOnClickListener(new b1());//将事件源与相应的相应绑定
    17

    18 }

    19class b1 implements View.OnClickListener{

    20publicvoid onClick(View view){ 21 Toast.makeText(MainActivity.this,"b1",Toast.LENGTH_LONG).show();

    22

    23 }

    24 }

    25

    26 }

    (三)思路同上,但不在书写内部类,直接由当前类实现OnClickListener接口,并重写onClick()方法

     1 import android.support.v7.app.AppCompatActivity;
     2 import android.os.Bundle;
     3 import android.view.View;
     4 import android.widget.Button;
     5 import android.widget.Toast;
     6 
     7 public class MainActivity extends AppCompatActivity implements View.OnClickListener {
     8 
     9     private Button b1;
    10     protected void onCreate(Bundle savedInstanceState) {
    11         super.onCreate(savedInstanceState);
    12         setContentView(R.layout.activity_main);
    13 b1=(Button) findViewById(R.id.b1);
    14         b1.setOnClickListener(this);
    15 
    16         }
    17 public void onClick(View view)
    18         {
    19         Toast.makeText(MainActivity.this,"b1",Toast.LENGTH_LONG).show();
    20 
    21         }
    22 
    23 
    24         }

    (四)创建匿名内部类,即在进行监听时直接创建一个OnClickListener

    package com.example.myapplication;
    
    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 b1;
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            b1=(Button) findViewById(R.id.b1);
            b1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(MainActivity.this,"b1",Toast.LENGTH_LONG).show();
                }
            });
    
        }
    }
  • 相关阅读:
    MySQL 多列索引优化小记
    Spring MVC + Security 4 初体验(Java配置版)
    Java程序通过代理访问网络
    Spring RESTful + Redis全注解实现恶意登录保护机制
    WinSCP 中普通用户以 root 身份登录 Linux
    Linux下修改系统时区
    Git如何检出指定目录或文件
    朴素贝叶斯
    console.log 被重写覆盖以后如何恢复
    MongoDB 基础命令使用学习记录
  • 原文地址:https://www.cnblogs.com/duolaAbao/p/6610500.html
Copyright © 2011-2022 走看看