Android控件onClick事件

Android控件onClick事件可以用如下三种方式来实现

1. 实现onClick方法

在layout的xml中指定onClick方法, Activity中实现该方法.  通常用于Button.

File:  res/layout/activity_main.xml
    <Button
        android:id="@+id/mybutton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="BtnClick" />
File: java/com/xxx/proj/MainActivity.java
    public void BtnClick(View view) {
        Intent intent = new Intent(MainActivity.this, Main2Activity.class);
        intent.putExtra("EXTRA_DATA", "New Activy");
        startActivity(intent);
    }

2. onCreate中为控件绑定方法

如果layout的xml中同时指定了onClick方法, 则优先执行xml中的方法

File: java/com/xxx/proj/MainActivity.java
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button button = (Button)findViewById(R.id.mybutton);
        button.setText(R.string.button_text);
        button.setOnClickListener(this);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, Main2Activity.class);
                intent.putExtra("EXTRA_DATA", "New Activity");
                startActivity(intent);
            }
        });
    }

3. 实现OnClickListener接口

该方法覆写OnClickListener中的onClick方法, 对不同的控件来响应各自的事件, 优点是能解决activity中所有的onclick问题

File: java/com/xxx/proj/MainActivity.java
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private Button button = null;

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

        button = (Button)findViewById(R.id.mybutton);
        button.setText(R.string.button_text);
        button.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if (v == button) {
            Intent intent = new Intent(MainActivity.this, Main2Activity.class);
            intent.putExtra("EXTRA_DATA", "New Activity");
            startActivity(intent);
        }
    }
}

参考:
<button的OnClickListener的三种实现方法>
<Android的按钮单击事件及监听器的实现方式>

时间: 2024-08-26 03:16:08

Android控件onClick事件的相关文章

android 控件onClick事件的4种实现方式

1. <span style="white-space:pre"> </span>TextView tv = (TextView) findViewById(R.id.tv); tv.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub //do something... }

android控件之间事件传递

public boolean dispatchTouchEvent(MotionEvent ev){} 用于事件的分发.Android中全部的事件都必须经过这种方法的分发.然后决定是自身消费当前事件还是继续往下分发给子控件处理.返回true表示不继续分发,事件没有被消费. public boolean onInterceptTouchEvent(MotionEvent arg0){} 用于事件的处理,返回true表示消费处理当前事件,返回false则不处理.交给子控件进行继续分发. public

Android IOC 之 注解绑定控件 以及事件 事例 代码简单注释讲解

想必开发过android的都使用过一些 框架,然而框架里都会使用一些,注解来帮助我们,节省大量的代码开发量.同时也使代码更加的简洁. 但是注解是通过java反射来实现的当然可能会牺牲掉一些性能. 以下是本人写的一个较为简单的绑定控件,并且触发其OnclickListem 事件. //直接先看下注解方法.比较简单,清晰 public class MainActivity extends FragmentActivity { <span style="white-space:pre"

Android 控件的触摸事件传递与处理

了解Android控件的触摸事件传递与处理对我们日常开发中自定义控件和触摸事件冲突解决有重大意义.Android控件的触摸事件传递和处理主要有以下几个方法,下面一一介绍. 一.与触摸事件有关的几个方法 boolean dispatchTouchEvent(MotionEvent ev);                                                                                               接收到触摸事件时,是否

Android控件介绍

Android控件介绍 多选按钮(CheckBox) CheckBox有两个常用的事件,OnClickListener事件和OnClickChangeListener事件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_w

Android控件架构与自定义控件详解(二)——自定义View

在自定义View时,我们通常会去重写onDraw()方法来绘制View的显示内容.如果该View还需要使用wrap_content属性,那么还必须重写onMeasure()方法.另外,通过自定义attrs属性,还可以设置新的属性配置值. 在View中通常有一些比较重要的回调方法. onFinishInflate():从XML加载组件后回调. onSizeChanged(;:组件大小改变时. onMeasure():回调该方法来进行测量. onLayout():回调该方法来确定显示的位置. onT

Android控件(2)RadioButton&amp;RadioGroup

抄自: http://www.cnblogs.com/wt616/archive/2011/06/20/2085531.html 学习目的: 1.掌握在Android中如何建立RadioGroup和RadioButton 2.掌握RadioGroup的常用属性 3.理解RadioButton和CheckBox的区别 4.掌握RadioGroup选中状态变换的事件(监听器) RadioButton和CheckBox的区别: 1.单个RadioButton在选中后,通过点击无法变为未选中 单个Che

Android控件常见属性

1.宽/高android:layout_width android:layout_height// 取值match_parent //匹配父控件wrap_content //自适应,根据内容 如果指定宽度,请用单位dp 2.控件在父控件中的对齐位置android:layout_gravity 3.控件中文本的对齐方式android:gravity 4.控件内元素的排列方式android:orientation 取值:horizontal 水平 vertical 垂直 5.文字大小 android

[Android控件]Dialogue大全

在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,在我们使用Android的过程中,我归纳了一下,Android Dialog的类型无非也就7种,下面我分别向大家介绍这7种Android Dialog对话框的使用方法,希望对大家能有所帮助. 1.该效果是当按返回按钮时弹出一个提示,来确保无误操作,采用常见的对话框样式. 创建dialog对话框方法代码如下: protected void di