GVKun编程网logo

Android Button点击事件的四种实现方法(android点击事件onclick用法)

18

如果您想了解AndroidButton点击事件的四种实现方法和android点击事件onclick用法的知识,那么本篇文章将是您的不二之选。我们将深入剖析AndroidButton点击事件的四种实现方

如果您想了解Android Button点击事件的四种实现方法android点击事件onclick用法的知识,那么本篇文章将是您的不二之选。我们将深入剖析Android Button点击事件的四种实现方法的各个方面,并为您解答android点击事件onclick用法的疑在这篇文章中,我们将为您介绍Android Button点击事件的四种实现方法的相关知识,同时也会详细的解释android点击事件onclick用法的运用方法,并给出实际的案例分析,希望能帮助到您!

本文目录一览:

Android Button点击事件的四种实现方法(android点击事件onclick用法)

Android Button点击事件的四种实现方法(android点击事件onclick用法)

Android中Button四种点击事件实现方式,具体内容如下

1.Xml添加监听属性,这里添加的doClick。

<Button
    android:id="@+id/bt1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="doClick"
    android:text="XML添加doClick"
    android:layout_above="@+id/bt2"
    android:layout_marginBottom="47dp"
    />
public void doClick(View view) {
    switch (view.getId()) {
      case R.id.bt1:
        Toast.makeText(MainActivity.this,"第一种点击事件:Xml添加doClick",Toast.LENGTH_SHORT).show();
        break;

    }

  }

在Activity中添加doClick实现方法。Activity中实现的方法要和XML添加的属性名相同,不建议实际开发中使用。

2.匿名内部类方式实现。

Button bt2 = (Button) findViewById(R.id.bt2);
    bt2.setonClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
         Toast.makeText(MainActivity.this,"第二种点击事件:匿名内部类",Toast.LENGTH_SHORT).show();
       }
     });

3.自定义点击事件实现。

Button bt3 = (Button) findViewById(R.id.bt3);
     bt3.setonClickListener(new MyListener());
class MyListener implements View.OnClickListener {
  @Override
  public void onClick(View v) {
    Toast.makeText(MainActivity.this,"第三种方法:自定义点击事件",Toast.LENGTH_SHORT).show();
  }
}

4.Activity继承View.OnClickListener,由Activity实现OnClick(View view)方法。

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
 Button bt4=(Button)findViewById(R.id.bt4);
  bt4.setonClickListener(this);
}

@Override
  public void onClick(View v) {
    switch (v.getId()) {
      case R.id.bt4:
        Toast.makeText(MainActivity.this,"第四种点击事件:Activity继承View.OnClickListener,由Activity实现OnClick(View view)方法",Toast.LENGTH_SHORT).show();
    }
  }
}

备注:Button数量不多的情况下推荐使用第二种,匿名内部类的方式实现;反之则推荐使用第四种,Activity继承View.OnClickListener实现。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

Android Button 四种点击事件和长按事件

Android Button 四种点击事件和长按事件

项目 XML 代码

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout
 3     xmlns:android="http://schemas.android.com/apk/res/android"
 4     xmlns:tools="http://schemas.android.com/tools"
 5     android:layout_width="match_parent"
 6     android:layout_height="match_parent"
 7     android:orientation="vertical"
 8     tools:context=".MainActivity">
 9 
10     <Button
11         android:layout_width="match_parent"
12         android:layout_height="wrap_content"
13         android:layout_marginTop="10dp"
14         android:onClick="doClick"
15         android:text="xml添加doClock"/>
16 
17     <Button
18         android:id="@+id/button2"
19         android:layout_width="match_parent"
20         android:layout_height="wrap_content"
21         android:layout_marginTop="10dp"
22         android:text="匿名内部类点击"/>
23 
24     <Button
25         android:id="@+id/button3"
26         android:layout_width="match_parent"
27         android:layout_height="wrap_content"
28         android:layout_marginTop="10dp"
29         android:text="自定义点击事件"/>
30 
31     <Button
32         android:id="@+id/button4"
33         android:layout_width="match_parent"
34         android:layout_height="wrap_content"
35         android:layout_marginTop="10dp"
36         android:text="继承方式"/>
37 
38     <Button
39         android:id="@+id/button5"
40         android:layout_width="match_parent"
41         android:layout_height="wrap_content"
42         android:layout_marginTop="10dp"
43         android:text="长按点击事件"/>
44 
45 </LinearLayout>

 

JAVA 代码:

 1 package com.example.a11658.buttondemo;
 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 implements View.OnClickListener {
10     Button button2, button3, button4, button5;
11 
12     @Override
13     protected void onCreate(Bundle savedInstanceState) {
14         super.onCreate(savedInstanceState);
15         setContentView(R.layout.activity_main);
16 
17         initView();
18     }
19 
20     private void initView() {
21         button2 = findViewById(R.id.button2);
22         button3 = findViewById(R.id.button3);
23         button4 = findViewById(R.id.button4);
24         button5 = findViewById(R.id.button5);
25 
26         button2.setOnClickListener(new View.OnClickListener() {
27             @Override
28             public void onClick(View v) {
29                 //匿名内部类实现点击事件
30                 Toast.makeText(MainActivity.this, "匿名内部类的点击事件", Toast.LENGTH_SHORT).show();
31             }
32         });
33 
34         button3.setOnClickListener(new MyListener());
35         button4.setOnClickListener(this);
36         button5.setOnLongClickListener(new View.OnLongClickListener() {
37             @Override
38             public boolean onLongClick(View v) {
39                 Toast.makeText(MainActivity.this, "长按事件", Toast.LENGTH_SHORT).show();
40                 return false;
41             }
42         });
43     }
44 
45     public void doClick(View view) {
46         //xml通过onClick实现点击事件
47         Toast.makeText(this, "xml点击实现", Toast.LENGTH_SHORT).show();
48     }
49 
50     @Override
51     public void onClick(View v) {
52         //继承方式
53         Toast.makeText(this, "继承点击", Toast.LENGTH_SHORT).show();
54     }
55 
56     class MyListener implements View.OnClickListener {
57 
58         @Override
59         public void onClick(View v) {
60             //自定义方式
61             Toast.makeText(MainActivity.this, "自定义点击事件", Toast.LENGTH_SHORT).show();
62         }
63     }
64 }
备注:Button数量不多的情况下推荐使用第二种,匿名内部类的方式实现;反之则推荐使用第四种,Activity继承View.OnClickListener实现

代码链接:https://pan.baidu.com/s/1hlkrcybgMUrS2rrslnDwGg

Android Button按钮的四种点击事件

Android Button按钮的四种点击事件

本文实例为大家分享了安卓Button按钮的四种点击事件,供大家参考,具体内容如下

第一种:内部类实现

1.xml里面先设置Button属性

<Button
 android:id="+@id/button1";
 android:layout_width="wrap_parent";
 android:layout_height="wrap_parent"
 android:text="按钮"/>

2.找到按钮

Button btn =(Button)findViewById(R.layout.button1)

3.给Button设置一个点击事件

btn.setonClickListener(new MyClickListener()) //传入的是ClickListener参数所以我们必须去定义一个参数接口

4.定义一个类去实现 按钮需要的接口类型

public MianActivity extend Activity(){
...
...
private class MyClickListener()implent OnclickListener{
 //当按钮被点击的时候调用
 public void Onclick (View v){
  //这里写点击事件方法
  System.out.printLn("被点击了")
  }
}
 }

第二种:利用匿名内部类来实现

1.xml里面先设置Button属性

<Button
 android:id="+@id/button1";
 android:layout_width="wrap_parent";
 android:layout_height="wrap_parent"
 android:text="按钮"/>

2.找到按钮

Button btn =(Button)findViewById(R.layout.button1);

3.给Button设置一个点击事件

//匿名内部类
public MianActivity extend Activity(){
...
...
btn.setonClickListener(new OnClickListener(){
 public void Onclick (View v){
  //这里写点击事件方法
  System.out.printLn("被点击了")

  }
} )
  };

第三种:Activity实现OnclickListener接口适用于多个按钮情况

1.xml里面先设置Button属性

<Button
 android:id="+@id/button1";
 android:layout_width="wrap_parent";
 android:layout_height="wrap_parent"
 android:text="按钮"/>
<Button
 android:id="+@id/button2";
 android:layout_width="wrap_parent";
 android:layout_height="wrap_parent"
 android:text="按钮2"/>
 <Button
 android:id="+@id/button1";
 android:layout_width="wrap_parent";
 android:layout_height="wrap_parent"
 android:text="按钮3"/>

2.找到按钮

Button btn =(Button)findViewById(R.layout.button1)
Button btn2 =(Button)findViewById(R.layout.button2)
Button btn3 =(Button)findViewById(R.layout.button3)

3.给Button设置一个点击事件

public MianActivity extend Activity implement OnClickListener(){
  ...
  ...
  Button btn =(Button)findViewById(this);//this代表MainActivity
  Button btn2 =(Button)findViewById(this)
  Button btn3 =(Button)findViewById(this)

  public void Onclick (View v){
  //具体判断点击的是哪个按钮
  switch(v.getId()){
  case.R.id.button1://代表点击第一个按钮
   Todo();//实现具体方法
   break;
  case.R.id.button2:
   Todo();//实现具体方法
   break;
  case.R.id.button3:
   Todo();//实现具体方法
   break;  
  default:
   break;
  }

  }
  private void Todo(){
   //具体方法
  }
}

第四种:在xml里面声明onclick

1.xml里面先设置Button属性

<Button
 android:id="+@id/*button1*";
 android:layout_width="wrap_parent";
 android:layout_height="wrap_parent"
 android:text="按钮"
 android:onClick="click"/>

2.找到按钮

Button btn =(Button)findViewById(R.layout.button1)

3.声明一个方法,方法名和你要点击的这个按钮在xml布局中声明的Onclick属性一样

public void **click**(View v){
 Todo();//实现具体方法
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

android ListView Item 和 CheckBox、Button 点击事件冲突的问题

android ListView Item 和 CheckBox、Button 点击事件冲突的问题

在 Item 的根目录上设置属性:

//表示锁定子View的焦点,不让Layout下的子View获取
android:descendantFocusability="blocksDescendants"

CheckBox 和 Button 设置属性:

//三个属性都需要设置为false
android:focusable="false"
android:focusableInTouchMode="false"
android:clickable="false"

完整的布局文件示例:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:descendantFocusability="blocksDescendants"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="45dp"
        android:orientation="horizontal">
        <CheckBox
            android:id="@+id/box"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:visibility="gone"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:clickable="false"
            android:layout_marginLeft="8dp"
            android:button="@drawable/check_box_background"
            android:gravity="center_vertical" />

        <TextView
            android:id="@+id/text_name"
            android:layout_width="wrap_content"
            android:paddingRight="5dp"
            android:layout_weight="0.1"
            android:layout_height="match_parent"
            android:gravity="center_vertical"
            android:layout_marginLeft="20dp"
            android:text="点名"
            android:textColor="@color/gray2"
            android:textSize="14sp" />

        <TextView
            android:id="@+id/text_workinfo"
            android:layout_width="0dp"
            android:layout_weight="0.99"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:paddingLeft="5dp"
            android:minHeight="45dp"
            android:layout_marginRight="5dp"
            android:text="0.0"
            android:textColor="@color/green"
            android:textSize="14sp" />

        <TextView
            android:id="@+id/text_edit"
            android:layout_width="0dp"
            android:layout_weight="0.4"
            android:paddingTop="8dp"
            android:paddingBottom="8dp"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_marginRight="5dp"
            android:text="编辑"
            android:textColor="@color/black"
            android:background="@drawable/border_line_corner_blue"
            android:textSize="14sp" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:visibility="visible"
        android:background="@color/gray" />
</LinearLayout>





Android onClick按钮单击事件的四种常用写法

Android onClick按钮单击事件的四种常用写法

这里使用四种onClick单击事件,来实现电话拔号器的DEMO。

XML文件

<EditText 
 android:layout_width="match_parent" 
 android:layout_height="wrap_content" 
 android:inputType="phone" 
 android:ems="10" 
 android:id="@+id/et_number" 
 android:layout_alignParentTop="true" 
 android:layout_alignParentLeft="true" 
 android:layout_alignParentStart="true" /> 
<Button 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:text="@string/dial_number" 
 android:id="@+id/bt_dial" 
 android:layout_below="@id/et_number" 
 android:layout_alignRight="@id/et_number" 
 android:layout_alignEnd="@id/et_number" /> 

第一种、匿名内部类:

protected void onCreate(Bundle savedInstanceState) { 
 super.onCreate(savedInstanceState); 
 setContentView(R.layout.activity_main); 
 Button bt_dial = (Button) findViewById(R.id.bt_dial); 
 bt_dial.setonClickListener(new View.OnClickListener() { 
  @Override 
  public void onClick(View view) { 
   dialPhone(); 
  } 
 }); 
} 

第二种、自定义单击事件监听类:

protected void onCreate(Bundle savedInstanceState) { 
 super.onCreate(savedInstanceState); 
  setContentView(R.layout.activity_main); 
  et_number = (EditText) MainActivity.this.findViewById(R.id.et_number); 
  Button bt_dial = (Button) findViewById(R.id.bt_dial); 
  bt_dial.setonClickListener(new MyListener()); 
 } 
 private class MyListener implements View.OnClickListener { 
 @Override 
 public void onClick(View view) { 
  dialPhone(); 
 } 
} 

第三种、Activity继承View.OnClickListener,由Activity实现OnClick(View view)方法,在OnClick(View view)方法中用switch-case对不同id代表的button进行相应的处理:

public class MainActivity extends Activity implements View.OnClickListener { 
 EditText et_number; 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.activity_main); 
  et_number = (EditText) MainActivity.this.findViewById(R.id.et_number); 
 Button bt_dial = (Button) findViewById(R.id.bt_dial); 
  bt_dial.setonClickListener(this); 
 } 
 public void onClick(View view) { 
  switch (view.getId()){ 
   case R.id.bt_dial: 
    dialPhone(); 
    break; 
   default: 
    break; 
  } 
 } 
} 

第四种、在XML文件中显示指定按钮的onClick属性,这样点击按钮时会利用反射的方式调用对应Activity中的click()方法:

<Button 
  android:onClick="dialphonemethod" 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content" 
  android:text="@string/dial_number" 
  android:id="@+id/bt_dial" 
  android:layout_below="@id/et_number" 
  android:layout_alignRight="@id/et_number" 
  android:layout_alignEnd="@id/et_number" /> 
public void dialphonemethod(View view){ 
 dialPhone(); 
} 
private void dialPhone() { 
 String number = et_number.getText().toString().trim(); 
 if (TextUtils.isEmpty(number)){ 
  Toast.makeText(this,"电话号码不能为空",Toast.LENGTH_LONG).show(); 
  return; 
 } 
 Intent intent = new Intent(); 
 intent.setAction(Intent.ACTION_CALL); 
 intent.setData(Uri.parse("tel:" + number)); 
 startActivity(intent); 
} 

总结:

第四种写法整个代码中都不用声明button就可以实现button的单击事件。但通常不推荐这样使用,第三种方法是onClick最佳的的使用方式。按钮少的时候用匿名内部类会比较快,比如写demo测试的时候。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程小技巧!

今天关于Android Button点击事件的四种实现方法android点击事件onclick用法的介绍到此结束,谢谢您的阅读,有关Android Button 四种点击事件和长按事件、Android Button按钮的四种点击事件、android ListView Item 和 CheckBox、Button 点击事件冲突的问题、Android onClick按钮单击事件的四种常用写法等更多相关知识的信息可以在本站进行查询。

本文标签: