Android--Android studio --Button点击事件的写法

Button点击事件:大概可以分为以下几种:

  1. 匿名内部类
  2. 定义内部类,实现OnClickListener接口
  3. 定义的构造方法
  4. 用Activity实现OnClickListener接口
  5. 指定Button的onClick的属性

首先定义一个带button的xml布局文件

activity_main.xml:

<Button
        android:id="@+id/bt1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="点击事件" />

然后再写Java代码:

1.匿名内部类

 1 @Override
 2     protected void onCreate(Bundle savedInstanceState) {
 3         super.onCreate(savedInstanceState);
 4         setContentView(R.layout.activity_main);
 5
 6         bt = (Button) findViewById(R.id.bt1);
 7         //1.匿名内部类
 8         bt.setOnClickListener(new OnClickListener() {
 9
10             @Override
11             public void onClick(View v) {
12                 // TODO Auto-generated method stub
13                 Log.i("匿名内部类", "点击事件");
14             }
15         });
16 }

2.定义内部类,实现OnClickListener接口

 1 public class MainActivity extends Activity{
 2
 3     private Button bt;
 4
 5     @Override
 6     protected void onCreate(Bundle savedInstanceState) {
 7         super.onCreate(savedInstanceState);
 8         setContentView(R.layout.activity_main);
 9
10         bt = (Button) findViewById(R.id.bt);
11
12         bt.setOnClickListener(new MyListener());
13     }
14
15         //定义内部类,实现OnClickListene接口
16     class MyListener implements OnClickListener{
17
18         @Override
19         public void onClick(View v) {
20             // TODO Auto-generated method stub
21             Log.i("定义内部类,实现OnClickListene接口", "点击事件");
22         }
23     }
24 }

3.定义的构造方法

 1 public class MainActivity extends Activity{
 2
 3     private Button bt;
 4
 5     @Override
 6     protected void onCreate(Bundle savedInstanceState) {
 7         super.onCreate(savedInstanceState);
 8         setContentView(R.layout.activity_main);
 9
10         bt = (Button) findViewById(R.id.bt);
11
12         myListener();
13     }
14
15         //定义构造方法
16         private void myListener() {
17         // TODO Auto-generated method stub
18         bt.setOnClickListener(new OnClickListener() {
19
20             @Override
21             public void onClick(View v) {
22                 // TODO Auto-generated method stub
23                 Log.i("定义构造方法", "点击事件");
24             }
25         });
26     }
27 }

4.用Activity实现OnClickListener接口

 1 public class MainActivity extends Activity implements OnClickListener {
 2
 3     private Button bt;
 4
 5     @Override
 6     protected void onCreate(Bundle savedInstanceState) {
 7         super.onCreate(savedInstanceState);
 8         setContentView(R.layout.activity_main);
 9
10         bt = (Button) findViewById(R.id.bt);
11         bt.setOnClickListener(this);
12     }
13   
14   
15   //用Activity实现OnClickListener接口
16     @Override
17     public void onClick(View v) {
18         // TODO Auto-generated method stub
19         Log.i("用Activity实现OnClickListener接口", "点击事件");
20         }
21
22 }

5.指定Button的onClick的属性:

 先在layout文件中指定onClick属性,然后到Activity中实现这个onButtonClick方法

布局文件:

1 <Button
2
3         android:layout_width="wrap_content"
4         android:layout_height="wrap_content"
5         android:onClick="click"
6         android:text="点击事件" />

Java代码:

 1 public class MainActivity extends Activity {
 2
 3     @Override
 4     protected void onCreate(Bundle savedInstanceState) {
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.activity_main);
 7
 8     }
 9
10     //5指定onClick属性方式
11     public void click(View v) {
12         // TODO Auto-generated method stub
13         Log.i("指定onClick属性方式","点击事件");
14     }
15 }

另外,多个按钮点击事件的处理,以指定onClick属性方式为例,获取其资源id,通过资源id,可以判断用户点击了哪个按钮了。

布局文件:

<Button
        android:id="@+id/bt1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="click"
        android:text="点击事件1" />

       <Button
        android:id="@+id/bt2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="click"
        android:text="点击事件2" />

       <Button
        android:id="@+id/bt3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="click"
        android:text="点击事件3" />/>

    <Button
        android:id="@+id/bt4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="click"
        android:text="点击事件4" />

Java代码:

public class MainActivity extends Activity {

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

    }

    //指定onClick属性方式
    //传人的View对象,就是用户按下的那个按钮对象
    public void click(View v) {
        // TODO Auto-generated method stub

        //获取组件的资源id
        int id = v.getId();
        switch (id) {
        case R.id.bt1:
            Log.i("指定onClick属性方式","bt1点击事件");
            break;
        case R.id.bt2:
            Log.i("指定onClick属性方式","bt2点击事件");
            break;
        case R.id.bt3:
            Log.i("指定onClick属性方式","bt3点击事件");
            break;
        case R.id.bt4:
            Log.i("指定onClick属性方式","bt4点击事件");
            break;

        default:
            break;
        }
    }
}

原文地址:https://www.cnblogs.com/Catherinezhilin/p/8819795.html

时间: 2024-10-13 03:10:27

Android--Android studio --Button点击事件的写法的相关文章

Android GridView中Button点击事件onItemClick不能响应

今天在捣鼓一个类似于百度贴吧的东西.布局:上面是个ActionBar标题栏,然后是一个GridView布局,在Java代码中动态加载关注的贴吧,一切就绪中,很愉快的弄好了! 现在需要点击选项进入某个贴吧,那么问题来了—— GridView中Button点击事件onItemClick不能响应. 所以,主要的猫腻还是在com.android.internal.R.attr.buttonStyle这个里面,查看这个xml文件,Button设置多了两个属性如下:<item name="androi

Android实战简易教程-第十五枪(实现ListView中Button点击事件监听)

1.main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" androi

Android笔记——Button点击事件几种写法

Button点击事件:大概可以分为以下几种: 匿名内部类 定义内部类,实现OnClickListener接口 定义的构造方法 用Activity实现OnClickListener接口 指定Button的onClick的属性 首先我们简单地定义一个带Button的xml布局文件 activity_main.xml: <Button android:id="@+id/bt1" android:layout_width="wrap_content" android:

Android中按钮的点击事件的四种写法

如题,在Android中按钮的点击事件有四种写法,如下图. 界面为四个Button+一个TextView+一个ImageView activity_main布局文件如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="

Android 自定义View——自定义点击事件

每个人手机上都有通讯录,这是毫无疑问的,我们通讯录上有一个控件,在通讯录的最左边有一列从"#"到"Z"的字母,我们通过滑动或点击指定的字母来确定联系人的位置,进而找到联系人.我们这一节就通过开发这个控件,来学如何自定义控件的点击事件. 通讯录列表查找控件界面绘制 首先我们需要先将控件的基本布局绘制出来,这里我们不在做详细的解释,在<Android 自定义View--自定义View控件 >博客中,我们已经详细讲解了如何绘制自定义控件的布局.通讯录列表查找控

Android 按钮的响应点击事件的4种写法

Android按钮的响应点击事件 学习了按钮的响应点击事件,写一下总结,写的不好的希望大家能给出意见或建议. 这是layout xml文件   点击事件只需要获得Button的id或者onClick <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" an

Android学习---ListView的点击事件,simpleAdapter和arrayadapter的原理和使用 - Hi_Amos

如题,本文将介绍 listview的点击事件,simpleAdapter和arrayadapter的原理和使用. 1.ListView的注册点击事件 //注册点击事件 personListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { /** * * @param parent 当前ListView * @param view 代表当前被点击的条目 * @param position 当前条目的位置 * @p

Android学习---ListView的点击事件,simpleAdapter和arrayadapter,SimpleCursoAdapter的原理和使用

如题,本文将介绍 listview的点击事件,simpleAdapter和arrayadapter的原理和使用. 1.ListView的注册点击事件 //注册点击事件 personListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { /** * * @param parent 当前ListView * @param view 代表当前被点击的条目 * @param position 当前条目的位置 * @p

从Listview与Button点击事件冲突看安卓点击事件分发机制

题目有点长.其实实现Listview的时候大家都可能会碰到这样的一个问题,那就是Listview的OnItemClickListener点击事件与Button(或者checkbox)的touch(或者click)事件冲突的问题. 声明一下,非常感谢郭大师的这篇blog: http://blog.csdn.net/guolin_blog/article/details/9097463 原理参考了这篇blog,事实上也是本人功力不够不能阅读源码的缺陷啊. 下面说下自己的解决步骤: 1)首先先set一