Android按钮单击事件的四种常用写法总结
Button的四种Click响应方法汇总
![Button的四种Click响应方法汇总](https://img.taocdn.com/s3/m/59f5b03f2bf90242a8956bec0975f46526d3a75f.png)
Button的四种Click响应⽅法汇总Button⽤得挺多的,在这整理了下它的事件处理⽅法,发现实现⽅法还不少,我⽐较喜欢第⼆种,你呢,最常⽤哪⼀种?实现⼀:复制代码代码如下:Button bt_Demo = (Button)findViewById(R.id.bt_Demo);bt_Demo.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){//响应Clicked事件//......}});实现⼆:复制代码代码如下:Button bt_Demo = (Button)findViewById(R.id.bt_Demo);bt_Demo.setOnClickListener(listener);private OnClickListener listener = new OnClickListener(){@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubswitch(arg0.getId()){case R.id.bt_Demo://响应Clicked事件//......break;default:break;}}}实现三:复制代码代码如下:Button bt_Demo = (Button)findViewById(R.id.bt_Demo);bt_Demo.setOnClickListener(new ButtonListener());private class ButtonListener implements OnClickListener{@Overridepublic void onClick(View arg0) {//响应Clicked事件//......}}实现四:复制代码代码如下://在Activity中直接OnClickListener接⼝:import android.view.View.OnClickListener;public class MyActivity extends Activity implements OnClickListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);setContentView(yout.main);//按纽Button bt_Demo = (Button)findViewById(R.id.bt_Demo);bt_Demo.setOnClickListener(this);}//响应Click事件public void onClick(View v) {switch (v.getId()) {case R.id.bt_Demo://响应Clicked事件//......break;default:break;}}}感谢这么全⾯的总结,虽然这些都知道,但是⾃⼰缺乏总结。
在Eclipse中开发Android程序,为一个按钮 建立点击事件
![在Eclipse中开发Android程序,为一个按钮 建立点击事件](https://img.taocdn.com/s3/m/1d22c3cd4028915f804dc22d.png)
}
};
button.setOnClickListener(listener); // 事件与Button关联上
} // onCreate()
}
button=(Button)findViewById(R.id.button);
// 对象与资源中属性参数关tener() {
public void onClick(View v) {
public class MainActivity extends Activity {
Button button; // 定义控件
OnClickListener listener=null; // Click事件定义
3. 手工添程序到 src-->MainActivety.java,四个步骤:
a.添 控件所涉及的import 头;
b.定义对象 button 于主类中;
c. 在onCreate()方法中,将控件对象与资源id参数关联上;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(yout.activity_main);
//---------------------------------------------------------
在Eclipse中开发Android程序,为一个按钮 建立点击事件!
步骤总结一下:
1. 新建一个工程Calc;
2. 双击主窗口 res->layout->activety_main.xml 前面的小图标,
Androidstudiobutton按钮四种绑定事件的方法
![Androidstudiobutton按钮四种绑定事件的方法](https://img.taocdn.com/s3/m/c89d1fd8c0c708a1284ac850ad02de80d5d8065b.png)
Androidstudiobutton按钮四种绑定事件的⽅法 1package com.geli_2.sujie.sujiegeili2testbutton;23import android.os.Bundle;4import android.support.v7.app.AppCompatActivity;5import android.view.View;6import android.widget.Button;7import android.widget.Toast;89public class MainActivity extends AppCompatActivity implements View.OnClickListener10 {1112private Button mBtClick;13private Button mBtClick2;14private Button mBtClick3;15private Button mBtClick4;1617 @Override18protected void onCreate(Bundle savedInstanceState)19 {20super.onCreate(savedInstanceState);21 setContentView(yout.activity_main);22 mBtClick = (Button) findViewById(R.id.btnTest1); //1、fdv 找到button id23// 2、 Alt Ctrl F 形成类全局Field24 mBtClick.setOnClickListener(new View.OnClickListener() //3、键⼊此⾏代码⾃动嵌⼊内部类⽅法25 {26 @Override27public void onClick(View v)28 { //4、 Toast tab tab 调出toast ⽅法以上为⽅法⼀29 Toast.makeText(MainActivity.this, "hello world1", Toast.LENGTH_SHORT).show();30 }31 });323334 mBtClick2 = (Button) findViewById(R.id.btnSample2); //5、找出button 2 的 button id fdv35 mBtClick2.setOnClickListener(new Button_2_OnClickListener()); //9、实例化⽅法给button 绑定以上是⽅法⼆36 mBtClick3 = (Button) findViewById(R.id.btnTry3); //10、找出button 3 的 button id fdv37 mBtClick3.setOnClickListener(this); //11、 this 表⽰ main acitivity38//12 但是这⾥是⽅法参数是onclicklistener接⼝,此处 this Alt Enter 会在此⽅法上加上实现的接⼝以上是⽅法三39 mBtClick4 = (Button) findViewById(R.id.btnExample4); //5、找出button 4 的 button id fdv ⽅法四这⾏没⽤404142 }4344/**45 * Called when a view has been clicked.46 *47 * @param v The view that was clicked.48*/49 @Override50public void onClick(View v)51 {52 Toast.makeText(MainActivity.this, "hello world 3", Toast.LENGTH_SHORT).show();//⽅法三53 }5455class Button_2_OnClickListener implements View.OnClickListener //6、设置⼀个 click ⽅法命名后继承⾃ view56// onclicklistener57//7、后在继承 implements 上 alt + enter 来实现⽅法58 {5960/**61 * Called when a view has been clicked.62 *63 * @param v The view that was clicked.64*/65 @Override66public void onClick(View v)67 {68 Toast.makeText(MainActivity.this, "hello world 2", Toast.LENGTH_SHORT).show();//⽅法⼆69 }70 }71public void click(View view)72 {73 Toast.makeText(MainActivity.this, "hello world 4", Toast.LENGTH_SHORT).show();//⽅法四74 }7576 }。
按钮的四种点击事件
![按钮的四种点击事件](https://img.taocdn.com/s3/m/74b6d473783e0912a2162ab3.png)
按钮的四种点击事件第一种(适用1-2个按钮的)public class MainActivity extends AppCompatActivity {private static EditText editText;private static Button button;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);editText = (EditText) findViewById(R.id.edit_text);button = (Button) findViewById(R.id.btn);button.setOnClickListener(new 方法名test());}private class test implements View.OnClickListener {@Overridepublic void onClick(View v) {//点击后的操作}}}第二种(适用1-2个按钮的)public class MainActivity extends AppCompatActivity {private static EditText editText;private static Button button;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);editText = (EditText) findViewById(R.id.edit_text);button = (Button) findViewById(R.id.btn);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//点击后的操作}});}}第三种(适用于很多按钮)public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private static EditText editText;private static Button button;@Overrideprotected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(yout.activity_main);editText = (EditText) findViewById(R.id.edit_text);button = (Button) findViewById(R.id.btn);button.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()){case R.id.btn://点击后的操作;break;case //按钮的ID://点击后的操作;break;case //按钮的ID://点击后的操作;break;case //按钮的ID://点击后的操作;break;......}}}第四种方式(适用于自己写的Demo)在xml文件中设置按钮的这种属性Android:onClick= "方法名"在相对于的Action种创建public void 方法名(View v){//点击后的操作}。
Android中点击事件的四种写法详解
![Android中点击事件的四种写法详解](https://img.taocdn.com/s3/m/c8b6ea00cd7931b765ce0508763231126edb77b0.png)
Android中点击事件的四种写法详解Android中点击事件的四种写法1. 使⽤内部类实现点击事件2. 使⽤匿名内部类实现点击事件3. 让MainActivity实现View.OnClickListener接⼝4. 通过布局⽂件中控件的属性第⼀种⽅法:使⽤内部类基本步骤如下:1. 新建⼀个MyOnClickListener类并实现View.OnClickListener接⼝2. 重写View.OnClickListener接⼝中的OnClick(View view)⽅法3. 给Button绑定⼀个监听器,并监听⼀个点击事件⽰例代码如下:public class MainActivity extends Activity {private Button btn;@Overrideprotected void onCreate(Bundle savedInstanceState) {//必须调⽤⼀次⽗类的该⽅法,因为⽗类中做了⼤量的⼯作super.onCreate(savedInstanceState);//给当前的Activity绑定⼀个布局setContentView(yout.activity_main);//通过调⽤⽗类的findViewById⽅法,根据控件的id获取控件对象btn = (Button) findViewById(R.id.button);//使⽤内部类(实现OnClickListener)给button绑定⼀个监听器,监听点击事件btn.setOnClickListener(new MyOnClickListener());}/*注意:这⾥的OnClickListener是android.view.View包下的,不是android.content.DialogInterface包下的。
*/class MyOnClickListener implements View.OnClickListener{@Overridepublic void onClick(View v) {System.out.println("使⽤内部类实现点击事件");}}第⼆种⽅法:使⽤匿名内部类基本步骤如下:1. 给Button绑定⼀个监听器,并监听⼀个点击事件2. 在setOnClickListener⽅法中直接传⼊⼀个OnClickListener对象,并实现OnClick⽅法⽰例代码如下:public class MainActivity extends Activity {private Button btn;@Overrideprotected void onCreate(Bundle savedInstanceState) {//必须调⽤⼀次⽗类的该⽅法,因为⽗类中做了⼤量的⼯作super.onCreate(savedInstanceState);//给当前的Activity绑定⼀个布局setContentView(yout.activity_main);//通过调⽤⽗类的findViewById⽅法,根据控件的id获取控件对象btn = (Button) findViewById(R.id.button);//使⽤匿名内部类(实现OnClickListener)给button绑定⼀个监听器,监听点击事件btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {System.out.println("使⽤匿名内部类实现点击事件");}});}}第三种⽅法:让MainActivity直接实现View.OnClickListener接⼝基本步骤如下:1. 让MainActivity直接实现View.OnClickListener2. 在MainActivity类中重写onClick⽅法3. 给Button绑定⼀个监听器,并监听⼀个点击事件。
AndroidButton按钮的四种点击事件
![AndroidButton按钮的四种点击事件](https://img.taocdn.com/s3/m/9d25ebab1b37f111f18583d049649b6648d7090d.png)
AndroidButton按钮的四种点击事件本⽂实例为⼤家分享了安卓Button按钮的四种点击事件,供⼤家参考,具体内容如下第⼀种:内部类实现1.xml⾥⾯先设置Button属性<Buttonandroid:id="+@id/button1";android:layout_width="wrap_parent";android:layout_height="wrap_parent"android:text="按钮"/>2.找到按钮Button btn =(Button)findViewById(yout.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属性<Buttonandroid:id="+@id/button1";android:layout_width="wrap_parent";android:layout_height="wrap_parent"android:text="按钮"/>2.找到按钮Button btn =(Button)findViewById(yout.button1);3.给Button设置⼀个点击事件//匿名内部类public MianActivity extend Activity(){......btn.setOnClickListener(new OnClickListener(){public void Onclick (View v){//这⾥写点击事件⽅法System.out.printLn("被点击了")}} )};第三种:Activity实现OnclickListener接⼝适⽤于多个按钮情况1.xml⾥⾯先设置Button属性<Buttonandroid:id="+@id/button1";android:layout_width="wrap_parent";android:layout_height="wrap_parent"android:text="按钮"/><Buttonandroid:id="+@id/button2";android:layout_width="wrap_parent";android:layout_height="wrap_parent"android:text="按钮2"/><Buttonandroid:id="+@id/button1";android:layout_width="wrap_parent";android:layout_height="wrap_parent"android:text="按钮3"/>2.找到按钮Button btn =(Button)findViewById(yout.button1)Button btn2 =(Button)findViewById(yout.button2)Button btn3 =(Button)findViewById(yout.button3)3.给Button设置⼀个点击事件public MianActivity extend Activity implement OnClickListener(){......Button btn =(Button)findViewById(this);//this代表MainActivityButton 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⾥⾯声明onclick1.xml⾥⾯先设置Button属性<Buttonandroid:id="+@id/*button1*";android:layout_width="wrap_parent";android:layout_height="wrap_parent"android:text="按钮"android:onClick="click"/>2.找到按钮Button btn =(Button)findViewById(yout.button1)3.声明⼀个⽅法,⽅法名和你要点击的这个按钮在xml布局中声明的Onclick属性⼀样public void **click**(View v){TODO();//实现具体⽅法}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
android button的写法
![android button的写法](https://img.taocdn.com/s3/m/e020bc995122aaea998fcc22bcd126fff7055d84.png)
android button的写法如何在Android中编写按钮(Button)?按钮(Button)是Android应用程序中常见的用户界面组件之一。
通过按钮,用户可以与应用程序进行交互,触发特定的操作或事件。
在Android 开发过程中,编写按钮涉及到布局文件和Java代码的编写。
本文将介绍如何在Android中编写按钮的步骤。
1. 创建一个新的Android项目在Android Studio中,点击“File”菜单,然后选择“New”和“New Project”来创建一个新的Android项目。
根据提示输入项目名称、包名和存储位置。
点击“Finish”按钮完成项目的创建。
2. 打开布局文件在Android项目的res文件夹中找到“layout”文件夹,然后打开“activity_main.xml”布局文件。
这是应用程序的主要布局文件。
3. 添加按钮组件在布局文件中,添加一个按钮组件。
可以使用XML标签<Button>来定义一个按钮,示例如下:xml<Buttonandroid:id="+id/myButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Click Me" />首先,我们为按钮指定了一个唯一的ID,以便在Java代码中引用它。
然后,使用“android:layout_width”和“android:layout_height”属性来指定按钮的宽度和高度。
最后,使用“android:text”属性来设置按钮上显示的文本。
4. 处理按钮点击事件现在,我们需要在Java代码中编写按钮的点击事件处理逻辑。
打开MainActivity.java文件,找到onCreate()方法,然后在其下面添加以下代码:javaButton myButton = findViewById(R.id.myButton);myButton.setOnClickListener(new View.OnClickListener() { Overridepublic void onClick(View v) {在这里编写按钮点击事件的逻辑Toast.makeText(MainActivity.this, "Button Clicked", Toast.LENGTH_SHORT).show();}});首先,我们通过findViewById()方法获取到布局文件中的按钮实例。
Android代码规范----按钮单击事件的四种写法
![Android代码规范----按钮单击事件的四种写法](https://img.taocdn.com/s3/m/2b7e4130ae45b307e87101f69e3143323968f576.png)
Android代码规范----按钮单击事件的四种写法【前⾔】按钮少的时候⽤第三种的匿名内部类会⽐较快,⽐如写demo测试的时候或者登陆界⾯之类。
按钮多的时候⼀般选择第四种写法。
⼀、第⼀种写法:在XML⽂件中声明onClick属性(很少⽤)在XML⽂件中显式指定控件的onClick属性,点击按钮时会利⽤反射的⽅式调⽤对应Activity中的onClick()⽅法。
(1)xml⽂件代码如下:1<LinearLayout xmlns:android="/apk/res/android"2 xmlns:tools="/tools"3 android:layout_width="match_parent"4 android:layout_height="match_parent"5 android:orientation="vertical">67<Button8android:id="@+id/btn1"9 android:layout_width="wrap_content"10 android:layout_height="wrap_content"11 android:onClick="onClick"12 android:text="按钮1"/>1314<Button15android:id="@+id/btn2"16 android:layout_width="wrap_content"17 android:layout_height="wrap_content"18 android:onClick="onClick"19 android:text="按钮2"/>2021</LinearLayout>上⾯的代码中,我们在第11⾏、18⾏指定了onClick属性,然后接下来在Activity中写⼀个onClick同名⽅法。
Android学习文档之四种点击事件
![Android学习文档之四种点击事件](https://img.taocdn.com/s3/m/48d0f62610661ed9ac51f30a.png)
此文档适合有一定java基础的人员学习今天,我们用过一个案例来学习一下点击事件的处理,在这个案例(拨打电话)中,我讲介绍四种点击事件的处理。
在介绍点击事件处理之前,我们需要了解一下需求。
首先拨打电话需要一个输入号码的地方,然后就是拨打按钮,界面布局我们可以这样:其所对用的activity_mian.xml代码如下:<RelativeLayoutxmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><EditTextandroid:id="@+id/et_phoneNum"android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="phone"android:hint="@string/tips"/><Buttonandroid:id="@+id/bt_call"android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/call"android:layout_below="@id/et_phoneNum" android:layout_alignParentRight="true"/></RelativeLayout>strings.xml(在项目的res/values下)代码如下:<?xml version="1.0" encoding="utf-8"?><resources><string name="app_name">CallPhone</string><string name="action_settings">Settings</string><string name="hello_world">Hello world!</string><string name="call">拨打电话</string><string name="tips">请输入电话号码</string></resources>好了,布局已经写好,下面我们就开始进行点击事件的处理了1、匿名内部类匿名内部类就是说一个类(一般是接口)在另一个方法内部实现(我的理解,可能不对,请按照课本真实理解)其代码如下:packagecom.hackerant.callphone;.Uri;importandroid.os.Bundle;importandroid.app.Activity;importandroid.content.Intent;importandroid.text.TextUtils;importandroid.view.Menu;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.Toast;public class MainActivity extends Activity{private Button btCall;privateEditTextetNum;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(yout.activity_main);//获取对象btCall = (Button) findViewById(R.id.bt_call);etNum = (EditText) findViewById(R.id.et_phoneNum);//设置点击事件//点击事件相应方法一,匿名内部类btCall.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){callPhone();}});}@OverridepublicbooleanonCreateOptionsMenu(Menu menu){// Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu);return true;}/*** 处理拨打电话的业务*/public void callPhone(){String num = etNum.getText().toString().trim();//如果输入电话号码为空if (TextUtils.isEmpty(num)){Toast.makeText(getApplicationContext(), "请输入电话号码!", Toast.LENGTH_SHORT).show();return ;}//Intent三步骤:创建-->设置action-->startIntent intent = new Intent();intent.setAction(Intent.ACTION_CALL);intent.setData(Uri.parse("tel:" + num));startActivity(intent);}}OK,java代码已经完成,但如果你直接点击运行(Run As Android Application),你将看到如下错误(屏幕+logcat日志):该错误是因为在Android中拨打电话可能产生费用,故而需要相应的权限,你需要在AndroidManifest.xml中写上拨打电话的权限,代码是:<uses-permissionandroid:name="android.permission.CALL_PHONE"/>其位置如下截图:这时才是真正的完成了,其成功截图如下:说明:由于我们已将打电话的业务代码给单独写出,所有在后面的事件中,我们只介绍关键代码2、重写OnClickListener其核心代码如下:@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(yout.activity_main);//获取对象btCall = (Button) findViewById(R.id.bt_call);etNum = (EditText) findViewById(R.id.et_phoneNum);//设置点击事件//点击事件相应方法而btCall.setOnClickListener(new myOnclickListener());}/*** 重写OnClickListener方法* @author jun**/public class myOnclickListener implements OnClickListener {@Overridepublic void onClick(View v){callPhone();}}其结果参考方法一3、让MainActivity继承OnClickListener其核心代码如下:packagecom.hackerant.callphone;.Uri;importandroid.os.Bundle;importandroid.app.Activity;importandroid.content.Intent;importandroid.text.TextUtils;importandroid.view.Menu;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.Toast;public class MainActivity extends Activity implements OnClickListener {private Button btCall;privateEditTextetNum;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(yout.activity_main);//获取对象btCall = (Button) findViewById(R.id.bt_call);etNum = (EditText) findViewById(R.id.et_phoneNum);//设置点击事件//点击事件相应方法三,该方法需要MainActivity继承OnclickListener,此方法最常用btCall.setOnClickListener(this);}public void callPhone(){String num = etNum.getText().toString().trim();if (TextUtils.isEmpty(num)){Toast.makeText(getApplicationContext(), "请输入电话号码!",Toast.LENGTH_SHORT).show();return ;}Intent intent = new Intent(); intent.setAction(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:" + num)); startActivity(intent);}@Overridepublic void onClick(View v){switch (v.getId()){caseR.id.bt_call:callPhone();break;default:break;}}}其结果参考方法一4、在布局文件中写onclick事件在activity_main.xml中,改写button代码如下:<Buttonandroid:id="@+id/bt_call"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/call"android:layout_below="@id/et_phoneNum"android:layout_alignParentRight="true"android:onClick="callPhone"/>其onClick对应得便点击方法,该方法则不需要重写OnClickListener特别介绍:Toast.makeText(getApplicationContext(), "请输入电话号码!",Toast.LENGTH_SHORT).show();Toast英文表示祝酒,但在此处表示弹出框,如上面截图中的“请输入电话号码!”便是。
Android--Androidstudio--Button点击事件的写法
![Android--Androidstudio--Button点击事件的写法](https://img.taocdn.com/s3/m/5f0a32cdd4bbfd0a79563c1ec5da50e2524dd18a.png)
Android--Androidstudio--Button点击事件的写法Button点击事件:⼤概可以分为以下⼏种:1. 匿名内部类2. 定义内部类,实现OnClickListener接⼝3. 定义的构造⽅法4. ⽤Activity实现OnClickListener接⼝5. 指定Button的onClick的属性⾸先定义⼀个带button的xml布局⽂件activity_main.xml:<Buttonandroid:id="@+id/bt1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="点击事件"/>然后再写Java代码:1.匿名内部类1 @Override2protected void onCreate(Bundle savedInstanceState) {3super.onCreate(savedInstanceState);4 setContentView(yout.activity_main);56 bt = (Button) findViewById(R.id.bt1);7//1.匿名内部类8 bt.setOnClickListener(new OnClickListener() {910 @Override11public void onClick(View v) {12// TODO Auto-generated method stub13 Log.i("匿名内部类", "点击事件");14 }15 });16 }2.定义内部类,实现OnClickListener接⼝1public class MainActivity extends Activity{23private Button bt;45 @Override6protected void onCreate(Bundle savedInstanceState) {7super.onCreate(savedInstanceState);8 setContentView(yout.activity_main);910 bt = (Button) findViewById(R.id.bt);1112 bt.setOnClickListener(new MyListener());13 }1415//定义内部类,实现OnClickListene接⼝16class MyListener implements OnClickListener{1718 @Override19public void onClick(View v) {20// TODO Auto-generated method stub21 Log.i("定义内部类,实现OnClickListene接⼝", "点击事件");22 }23 }24 }3.定义的构造⽅法1public class MainActivity extends Activity{23private Button bt;45 @Override6protected void onCreate(Bundle savedInstanceState) {7super.onCreate(savedInstanceState);8 setContentView(yout.activity_main);910 bt = (Button) findViewById(R.id.bt);1112 myListener();13 }1415//定义构造⽅法16private void myListener() {17// TODO Auto-generated method stub18 bt.setOnClickListener(new OnClickListener() {1920 @Override21public void onClick(View v) {22// TODO Auto-generated method stub23 Log.i("定义构造⽅法", "点击事件");24 }25 });26 }27 }4.⽤Activity实现OnClickListener接⼝1public class MainActivity extends Activity implements OnClickListener {23private Button bt;45 @Override6protected void onCreate(Bundle savedInstanceState) {7super.onCreate(savedInstanceState);8 setContentView(yout.activity_main);910 bt = (Button) findViewById(R.id.bt);11 bt.setOnClickListener(this);12 }13 14 15 //⽤Activity实现OnClickListener接⼝16 @Override17public void onClick(View v) {18// TODO Auto-generated method stub19 Log.i("⽤Activity实现OnClickListener接⼝", "点击事件");20 }2122 }5.指定Button的onClick的属性: 先在layout⽂件中指定onClick属性,然后到Activity中实现这个onButtonClick⽅法布局⽂件:1<Button23android:layout_width="wrap_content"4 android:layout_height="wrap_content"5 android:onClick="click"6 android:text="点击事件"/>Java代码:1public class MainActivity extends Activity {23 @Override4protected void onCreate(Bundle savedInstanceState) {5super.onCreate(savedInstanceState);6 setContentView(yout.activity_main);78 }910//5指定onClick属性⽅式11public void click(View v) {12// TODO Auto-generated method stub13 Log.i("指定onClick属性⽅式","点击事件");14 }15 }另外,多个按钮点击事件的处理,以指定onClick属性⽅式为例,获取其资源id,通过资源id,可以判断⽤户点击了哪个按钮了。
黑马程序员:Android点击事件的四种写法
![黑马程序员:Android点击事件的四种写法](https://img.taocdn.com/s3/m/9c802f0e866fb84ae55c8d0a.png)
Android点击事件的四种写法
Android中获取到按钮后,我们一般会为其添加点击事件,而android中的点击事件共有四种。
一、通过匿名内部类来实现
代码摘抄自电话拨号器项目。
二、通过内部类来实现
:其实第二种方法跟第一种方法在本质上没有任何差别,虽然一个是匿名内部类另外一个是内部类,但是这只是写法上的差别,两者都是通过Button对象的setOnClickListener()方法来绑定实现的。
三、由类文件去实现监听接口
让Activity类实现OnClickListener接口
覆写接口中定义的onClick方法
直接使用this为控件注册事件
四、在布局文件中注册事件
在布局文件中添加android:onClick 属性
在相应的java代码中定义call方法
:该方法的形参必须为View对象,且只能有一个。
AndroidonClick按钮单击事件的四种常用写法
![AndroidonClick按钮单击事件的四种常用写法](https://img.taocdn.com/s3/m/ebf28dbfd0f34693daef5ef7ba0d4a7302766c60.png)
AndroidonClick按钮单击事件的四种常⽤写法这⾥使⽤四种onClick单击事件,来实现电话拔号器的DEMO。
XML⽂件<EditTextandroid: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" /><Buttonandroid: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(yout.activity_main);Button bt_dial = (Button) findViewById(R.id.bt_dial);bt_dial.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {dialPhone();}});}第⼆种、⾃定义单击事件监听类:protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.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 {@Overridepublic 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;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.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()⽅法:<Buttonandroid: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的单击事件。
Android手势触摸事件
![Android手势触摸事件](https://img.taocdn.com/s3/m/f2e2d4cf2dc58bd63186bceb19e8b8f67c1cefc7.png)
Android⼿势触摸事件在刚开始学Android的时候,就觉得Google的⽂档不咋样,在研究⼿势时,更加的感觉Google的⽂档写得实在是太差了。
很多常量,属性和⽅法,居然连个描述都没有。
没有描述也就罢了,但是OnGestureListener⾥⼿势这么多,它也没有⼀个介绍说明,在没有进⾏不断才尝试之前,谁能搞懂onLongPress 和onShowPress,onScroll和onFling的关系与差别吗?Google真的需要在⽂档⽅⾯做⼀次⼤⼿术了。
不过好在经过鄙⼈不断反复的尝试。
从个⼈的⾓度为这⼏个⼿势动作做出了定义。
按下(onDown):刚刚⼿指接触到触摸屏的那⼀刹那,就是触的那⼀下。
抛掷(onFling):⼿指在触摸屏上迅速移动,并松开的动作。
长按(onLongPress):⼿指按在持续⼀段时间,并且没有松开。
滚动(onScroll):⼿指在触摸屏上滑动。
按住(onShowPress):⼿指按在触摸屏上,它的时间范围在按下起效,在长按之前。
抬起(onSingleTapUp):⼿指离开触摸屏的那⼀刹那。
除了这些定义之外,鄙⼈也总结了⼀点算是经验的经验吧,在这⾥和⼤家分享⼀下。
任何⼿势动作都会先执⾏⼀次按下(onDown)动作。
长按(onLongPress)动作前⼀定会执⾏⼀次按住(onShowPress)动作。
按住(onShowPress)动作和按下(onDown)动作之后都会执⾏⼀次抬起(onSingleTapUp)动作。
长按(onLongPress)、滚动(onScroll)和抛掷(onFling)动作之后都不会执⾏抬起(onSingleTapUp)动作。
识别触摸屏⼿势使得⽤户体验⼤⼤提⾼。
在View类中有个View.OnTouchListener内部接⼝,通过重写他的onTouch(View v, MotionEvent event)⽅法,我们可以处理⼀些简单的touch事件,但是这个⽅法并不能识别⼿势,如果需要处理⼀些复杂的⼿势,⽤这个接⼝就会很⿇烦(因为我们要⾃⼰根据⽤户触摸的轨迹去判断是什么⼿势)。
Button按钮的四种点击方式
![Button按钮的四种点击方式](https://img.taocdn.com/s3/m/17ef2f6031b765ce04081412.png)
Button按钮的四种点击方式第一种:直接在代码中设置按钮的点击事件即可private Button btn;private ImageView iv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main3);btn = ((Button) findViewById(R.id.btn));iv = ((ImageView) findViewById(R.id.iv));btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//第一种点击方式Toast.makeText(Main3Activity.this,"第一种点击方式",Toast.LENGTH_SHORT).show();}});第二种:在xml布局按钮的属性加上onClick=“...”,然后在代码中撰写该方法即可<Buttonandroid:id="@+id/btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="Click"android:text="点击"/>public void Click(View view){//第二种点击方式Toast.makeText(Main3Activity.this,"第二种点击方式",Toast.LENGTH_SHORT).show();}第三种:自定义一个内部类实现OnClickListener接口,然后重写点击方法,把按钮设置点击为该类即可btn.setOnClickListener(new MyOnClickListener());private class MyOnClickListener implements View.OnClickListener{@Overridepublic void onClick(View v) {//第三种点击方式Toast.makeText(Main3Activity.this,"第三种点击方式",Toast.LENGTH_SHORT).show();}}第四种:在主类实现OnClickListener接口,重写OnClick方法,然后看下面的代码即懂了...public class Main3Activity extends AppCompatActivity implements View.OnClickListener{ private Button btn;。
安卓按钮实现点击事件四种方式button
![安卓按钮实现点击事件四种方式button](https://img.taocdn.com/s3/m/05a2a153326c1eb91a37f111f18583d049640fb3.png)
安卓按钮实现点击事件四种⽅式button 1. 设置button的onClick属性-不推荐使⽤在布局⽂件加⼊onClick属性<Buttonandroid:id="@+id/btn1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="点击事件测试按钮"android:onClick="btn1"/>在MainActivity重写该事件public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);}public void btn1 (View view){//btn1按钮点击触发的事件Toast.makeText(this, "btn1按钮点击触发的事件", Toast.LENGTH_SHORT).show();}}2. button的setOnClickListener⽅法public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);Button btn2=findViewById(R.id.btn2);btn2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//btn2按钮点击触发的事件Toast.makeText(this, "btn2按钮点击触发的事件", Toast.LENGTH_SHORT).show();}}});}}3. 常⽤-Activity类实现OnClickLister接⼝,并重写OnClick⽅法/*** implements View.OnClickListener 点击事件监听接⼝*/public class MainActivity extends AppCompatActivity implements View.OnClickListener {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);Button btn1 =findViewById(R.id.btn1);Button btn2 =findViewById(R.id.btn2);Button btn3 =findViewById(R.id.btn3);//记得⼀定要设置按钮监听btn1.setOnClickListener(this);btn2.setOnClickListener(this);btn3.setOnClickListener(this);}/*** 多个按钮监听采⽤switch-case语句* @param v*/@Overridepublic void onClick(View v) {switch (v.getId()){case R.id.btn1://btn1按钮点击触发的事件Toast.makeText(this, "btn1按钮点击触发的事件", Toast.LENGTH_SHORT).show(); break;case R.id.btn2://btn2按钮点击触发的事件Toast.makeText(this, "btn2按钮点击触发的事件", Toast.LENGTH_SHORT).show(); break;case R.id.btn3://btn3按钮点击触发的事件Toast.makeText(this, "btn3按钮点击触发的事件", Toast.LENGTH_SHORT).show(); break;}}}4. 常⽤-内部类实现OnClickLister接⼝,并重写OnClick⽅法public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);Button btn4 =findViewById(R.id.btn4);//按钮4设置监听,new MyClickListener()是我们⾃定义的监听类btn4.setOnClickListener(new MyClickListener());}//⾃定义⼀个内部的监听类class MyClickListener implements View.OnClickListener{@Overridepublic void onClick(View v) {//btn4按钮点击事件Toast.makeText(this, "btn4按钮点击触发的事件", Toast.LENGTH_SHORT).show(); //⼀样可以⽤switch-case语句对多个按钮进⾏监听//记得为按钮设置监听的参数为new MyClickListener()}}}。
android的触摸事件
![android的触摸事件](https://img.taocdn.com/s3/m/dbfb14d259f5f61fb7360b4c2e3f5727a5e92476.png)
android的触摸事件由于触摸(Touch)⽽触发的事件Android的事件:onClick, onScroll, onFling等等,都是由许多个Touch组成的。
其中Touch的第⼀个状态肯定是ACTION_DOWN, 表⽰按下了屏幕。
之后,touch将会有后续事件,可能是:ACTION_MOVE //表⽰为移动⼿势ACTION_UP //表⽰为离开屏幕ACTION_CANCEL //表⽰取消⼿势,不会由⽤户产⽣,⽽是由程序产⽣的⼀个Action_DOWN, n个ACTION_MOVE, 1个ACTION_UP,就构成了Android中众多的事件。
对于ViewGroup类的控件,有⼀个很重要的⽅法,就是onInterceptTouchEvent(),⽤于处理事件并改变事件的传递⽅向,它的返回值是⼀个布尔值,决定了Touch事件是否要向它包含的⼦View继续传递,这个⽅法是从⽗View向⼦View传递。
⽽⽅法onTouchEvent(),⽤于接收事件并处理,它的返回值也是⼀个布尔值,决定了事件及后续事件是否继续向上传递,这个⽅法是从⼦View向⽗View传递。
touch事件在 onInterceptTouchEvent()和onTouchEvent以及各个childView间的传递机制完全取决于onInterceptTouchEvent()和onTouchEvent()的返回值。
返回值为true表⽰事件被正确接收和处理了,返回值为false表⽰事件没有被处理,将继续传递下去。
ACTION_DOWN事件会传到某个ViewGroup类的onInterceptTouchEvent,如果返回false,则DOWN事件继续向⼦ViewGroup类的onInterceptTouchEvent传递,如果⼦View不是ViewGroup 类的控件,则传递给它的onTouchEvent。
如果onInterceptTouchEvent返回了true,则DOWN事件传递给它的onTouchEvent,不再继续传递,并且之后的后续事件也都传递给它的onTouchEvent。
Android中屏幕点击事件的实现
![Android中屏幕点击事件的实现](https://img.taocdn.com/s3/m/cdd837e49f3143323968011ca300a6c30c22f1ea.png)
Android中屏幕点击事件的实现在android下,事件的发⽣是在监听器下进⾏,android系统能够响应按键事件和触摸屏事件,事件说明例如以下:onClick(View v)⼀个普通的点击button事件boolean onKeyMultiple(int keyCode,int repeatCount,KeyEvent event)⽤于在多个事件连续时发⽣,⽤于按键反复,必须重载@Override实现boolean onKeyDown(int keyCode,KeyEvent event)⽤于在按键进⾏按下时发⽣boolean onKeyUp(int keyCode,KeyEvent event)⽤于在按键进⾏释放时发⽣onTouchEvent(MotionEvent event)触摸屏事件,当在触摸屏上有动作时发⽣boolean onKeyLongPress(int keyCode, KeyEvent event)当你长时间按时发⽣对于这⼏个函数的实例⾸先我们建⽴⼀个android项⽬,当项⽬建⽴好之后,直接在默认的main.xml⽂件⾥拖放⼀个button按钮,其它的不须要在这⾥做什么了,然后就能够到命名好的.java⽂件⾥进⾏先关代码的书写;1.对要使⽤的控件进⾏引⽤,当然你也能够⽤到的时候再在相关类控件加⼊引⽤import android.app.Activity;import android.os.Bundle;import android.view.KeyEvent;import android.view.MotionEvent;import android.view.View;import android.widget.Button;import android.widget.Toast;2.获得相关对象,设置控件监听器Button button=(Button) findViewById(R.id.button1);//设置监听button.setOnClickListener(newButton.OnClickListener(){@Overridepublicvoid onClick(View v) {//TODO Auto-generated method stubDisplayToast("事件触发成功");}});请注意这⾥末尾使⽤的是分号“;这⾥就是获得button的实例,然后对他进⾏监听,当⽤户点击时就会发⽣onClick事件,这⾥还⽤到⼀个⽅法,就是显⽰⼀个短消息,在屏幕停留⼏秒钟就会⾃⼰主动消失,其⽅法例如以下:publicvoid DisplayToast(String str){Toast.makeText(this, str, Toast.LENGTH_SHORT).show();}当然你也能够设置显⽰长点,即Toast.LENGTH_SHORT改为Toast.LENGTH_LONG3.当按键按下是发⽣的事件这⾥全部的keyCode都囊括了,这仅仅是⼏个⽐較典型的样例,效果例如以下:4.当按键弹起时发⽣的事件,代码例如以下:publicboolean onKeyUp(int keyCode,KeyEvent event){switch(keyCode){case KeyEvent.KEYCODE_0:DisplayToast("松开数字键0");break;case KeyEvent.KEYCODE_DPAD_CENTER:DisplayToast("松开中间键");break;case KeyEvent.KEYCODE_DPAD_DOWN:DisplayToast("松开下⽅向键");break;case KeyEvent.KEYCODE_DPAD_LEFT:DisplayToast("松开左⽅向键");break;case KeyEvent.KEYCODE_DPAD_RIGHT:DisplayToast("松开右⽅向键");break;case KeyEvent.KEYCODE_DPAD_UP:DisplayToast("松开上⽅向键");break;case KeyEvent.KEYCODE_ALT_LEFT:DisplayToast("松开组合键alt+←");break;}returnsuper.onKeyUp(keyCode, event);}效果与上图类似,仅仅是⽂字不⼀样5.触摸屏事件,当⽤⼿或者⽤笔在触摸屏上做动作是发⽣,相关代码例如以下:public boolean onTouchEvent(MotionEvent event){int Action = event.getAction();float X = event.getX();float Y = event.getY();mAction.setText("Action = " + Action);mPosition.setText("Position = (" + X + " , " + Y + ")");return true;}当中 Action变量会得到三个返回值,代表三种不同的触摸阶段Action = 0 : ACTION_DOWNAction = 1 : ACTION_UPAction = 2 ; ACTION_MOVE 就是拖动的感觉6.连续点击按键时发⽣的事件Publicboolean onKeyMultiple(int keyCode,int repeatCount,KeyEvent event){Return super.onKeyMultiple(keyCode, repeatCount, event);}Android onTouchEvent, onClick及onLongClick的调⽤机制针对屏幕上的⼀个View控件,Android怎样区分应当触发onTouchEvent,还是onClick,亦或是onLongClick事件?在Android中,⼀次⽤户操作能够被不同的View按次序分别处理,并将全然响应了⽤户⼀次UI操作称之为消费了该事件(consume),那么Android是按什么次序将事件传递的呢?⼜在什么情况下判定为消费了该事件?搞清楚这些问题对于编写出能正确响应UI操作的代码是⾮常重要的,尤其当屏幕上的不同View须要针对此次UI操作做出各种不同响应的时候更是如此,⼀个典型样例就是⽤户在桌⾯上放置了⼀个Widget,那么当⽤户针对widget做各种操作时,桌⾯本⾝有的时候要对⽤户的操作做出响应,有时忽略。
android中在activity中button的用法
![android中在activity中button的用法](https://img.taocdn.com/s3/m/8718009a51e2524de518964bcf84b9d528ea2c16.png)
android中在activity中button的用法在Android中,在activity中添加Button的步骤如下:1.在xml文件中添加Button元素,设置Button的ID和其他属性(如text、background等)。
xml<Buttonandroid:id="@+id/button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Click me"android:background="@drawable/button_bg"/>2.在activity的Java代码中,通过findViewById找到Button控件,并设置其点击事件的监听器。
javaButton button = (Button) findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {这里写点击事件的处理逻辑,如打开一个新的Activity。
Intent intent = new Intent(MainActivity.this, SecondActivity.class);startActivity(intent);}});其中,MainActivity.this表示当前的activity,SecondActivity.class表示要打开的目标activity的类。
也可以通过直接在Button控件中设置点击事件的处理逻辑,如下所示:xml<Buttonandroid:id="@+id/button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Click me"android:background="@drawable/button_bg"android:onClick="onButtonClick"/>在activity的Java代码中添加onButtonClick方法:javapublic void onButtonClick(View view) {处理点击事件的逻辑}这样就可以通过在xml中设置onClick属性来完成点击事件的处理。
Android点击事件的四种写法
![Android点击事件的四种写法](https://img.taocdn.com/s3/m/dd88facc7e192279168884868762caaedd33baf8.png)
Android点击事件的四种写法Android中获取到按钮后,我们⼀般会为其添加点击事件,⽽android中的点击事件共有四种写法,下⾯我们通过代码⼀⼀去实现。
在Button的setOnClickListener⽅法中,需要为之传⼊⼀个OnClickListener作为参数。
如此,我们需要⼀个OnClickListener对象。
1、采⽤在Activity中创建⼀个内部类定义点击事件[java]view plaincopy1. package com.example.hello;2.3. import android.os.Bundle;4. import android.app.Activity;5. import android.view.View;6. import android.view.View.OnClickListener;7. import android.widget.Button;8.9. public class MainActivity extends Activity {10.11. protected void onCreate(Bundle savedInstanceState) {12. super.onCreate(savedInstanceState);13. setContentView(yout.activity_main);14.15. Button button = (Button) findViewById(R.id.bt_dj);16. button.setOnClickListener(new MyListener());17.18. }19.20. private class MyListener implements OnClickListener{21.22. @Override[java]view plaincopy1. <span style="white-space:pre"> </span>//按钮被点击是调⽤的⽅法2. public void onClick(View v) {3. //点击按钮后需要执⾏的操作4. }5.6. }7.8.9. }2、采⽤匿名内部类定义点击事件[java]view plaincopy1. button.setOnClickListener(new OnClickListener() {2.3. <span style="white-space:pre"> </span>@Override4. //按钮点击时调⽤的犯法5. public void onClick(View v) {6.7. }8. });3、Activity⾃⼰实现OnClickListener接⼝,实现onClick⽅法[java]view plaincopy1. package com.example.hello;2.3. import android.os.Bundle;4. import android.app.Activity;5. import android.view.View;6. import android.view.View.OnClickListener;7. import android.widget.Button;8.9. public class MainActivity extends Activity implements OnClickListener{10.11. protected void onCreate(Bundle savedInstanceState) {12. super.onCreate(savedInstanceState);13. setContentView(yout.activity_main);14.15. Button button = (Button) findViewById(R.id.bt_dj);16. button.setOnClickListener(this);17.18. }19.20. @Override21. //按钮点击时调⽤的⽅法22. public void onClick(View v) {23. // TODO Auto-generated method stub24.25. }26.27. }4、在xml⽂件中创建Button view时,为它添加Onclick参数[html]view plaincopy1. <RelativeLayout xmlns:android="/apk/res/android"2. xmlns:tools="/tools"3. android:layout_width="match_parent"4. android:layout_height="match_parent"5. android:paddingBottom="@dimen/activity_vertical_margin"6. android:paddingLeft="@dimen/activity_horizontal_margin"7. android:paddingRight="@dimen/activity_horizontal_margin"8. android:paddingTop="@dimen/activity_vertical_margin"9. tools:context=".MainActivity" >10.11. <Button12. android:id="@+id/bt_dj"13. <span style="background-color: rgb(255, 0, 0);">android:onClick="buttonClicked"</span>14. android:layout_width="wrap_content"15. android:layout_height="wrap_content"16. android:text="点击我"17. />18.19. </RelativeLayout>添加了参数后,在Activity中实现 buttonClicked⽅法[java]view plaincopy1. /**2. * 按钮点击时调⽤的⽅法3. */4. public void buttonClicked(){5.6. }。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Android 使用 Intent 传递数据的实现思路与代码 Android 不同 Activity 间数据的传递 Bundle 对象的应用 Android 系列之 Intent 传递对象的几种实例方法 Android 学习笔记--通过 Application 传递数据代码示例
} });
btn2.setOnClickListener(new OnClickListener() {
@Override public void onClick(View v) {
// TODO Auto-generated method stub Toast tst = Toast.makeText(TestButtonActivity.this, "222222222", Toast.LENGTH_SHORT); tst.show(); } }); } }
// 注意 这里没有 @Override 标签 public void onClick(View v) {
// TODO Auto-generated method stub switch (v.getId()) { case R.id.button1:
tst = Toast.makeText(this, "111111111", Toast.LENGTH_SHORT); tst.show(); break; case R.id.button2: tst = Toast.makeText(this, "222222222", Toast.LENGTH_SHORT); tst.show(); break; default: break; } } }
xml 文件代码如下:
<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button1" />
<Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button2" />
这里在输完 android:的时候按下 Alt+/ 会有 onClick 属性的提示, 但输入到 android:onClick=“ 的地方按下 Alt+/ 并没有提示 onClick 选项,让我突然觉得这里好像有 点问题。
public class TestButtonActivity extends Activity {
Android Activity 之间传递图片(Bitmap)的方法
Android Touch 事件分发过程详解
Android 中捕获 TTextView 文本中的链接点击事件方法
android 中 intent 传递 list 或者对象的方法
Android 中三种注入事件方法比较
这种写法整个代码中都不用声明 button 就可以实现 button 的单击事件。
以上就是四种实现按钮单击事件的方法。
粗略总结一下,就是按钮少的时候用匿名内部类会比较快,比如写 demo 测试的时候或者登 陆界面之类的。
按钮多的情况我还是选择第三种方觉得写法不够大众化。
btn1.setOnClickListener(this); btn2.setOnClickListener(this); }
@Override public void onClick(View v) {
// TODO Auto-generated method stub switch (v.getId()) { case R.id.button1:
Button btn1, btn2;
Toast tst;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(yout.activity_test_button); }
Android 中实现监听 ScrollView 滑动事件
封装的 android 监听手指左右滑动屏幕的事件类分享
Android 事件传递机制
2015-12-12Android checkbox 的 listView 具体操作方法 2012-12-12Android 在高 jar 包版本的工程中修改方法 2013-03-03Android 图片特效处理的方法实例 2015-11-11Android 编程实现获取图片资源的四种方法 2016-02-02Android 实现图片异步加载及本地缓存 2016-01-01Android 仿微信朋友圈实现滚动条下拉反弹效果 2014-02-02android downsample 降低音频采样频率代码 2013-06-06android 中 ProgressDialog 与 ProgressBar 的使用详解 2013-06-06 基于 Android 扫描 sd 卡与系统文件的介绍 2013-03-03listview 里子项有按钮的情况使用介绍
super.onCreate(savedInstanceState); setContentView(yout.activity_test_button);
btn1 = (Button) findViewById(R.id.button1); btn2 = (Button) findViewById(R.id.button2);
// TODO Auto-generated method stub switch (v.getId()) { case R.id.button1:
tst = Toast.makeText(TestButtonActivity.this, "111111111", Toast.LENGTH_SHORT);
public class TestButtonActivity extends Activity implements OnClickListener {
Button btn1, btn2; Toast tst;
@Override protected void onCreate(Bundle savedInstanceState) {
tst.show(); break; case R.id.button2:
tst = Toast.makeText(TestButtonActivity.this, "222222222", Toast.LENGTH_SHORT);
tst.show(); break; default: break; } } }
2. 自定义单击事件监听类:
public class TestButtonActivity extends Activity {
Button btn1, btn2; Toast tst;
class MyClickListener implements OnClickListener {
@Override public void onClick(View v) {
3. 最后一种是我今天看到的一种写法,在 XML 文件中“显示指定按钮的 onClick 属性,这 样点击按钮时会利用反射的方式调用对应 Activity 中的 click()方法”
<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onClick" android:text="Button1" />
super.onCreate(savedInstanceState); setContentView(yout.activity_test_button);
btn1 = (Button) findViewById(R.id.button1); btn2 = (Button) findViewById(R.id.button2);
tst = Toast.makeText(this, "111111111", Toast.LENGTH_SHORT); tst.show(); break; case R.id.button2: tst = Toast.makeText(this, "222222222", Toast.LENGTH_SHORT); tst.show(); break; default: break; } } }
btn1.setOnClickListener(new OnClickListener() {
@Override public void onClick(View v) {
// TODO Auto-generated method stub Toast tst = Toast.makeText(TestButtonActivity.this, "111111111", Toast.LENGTH_SHORT); tst.show();
<Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onClick" android:text="Button2" />