Android开发中控件的三种点击事件
1. 响应XML文件定义的事件:在相应控件的属性中添加android:onClick="btn_test1" 其中“btn_test1”为你定义的方法。此种方式activity不需要实现OnClickListener。附demo:
public class MainActivity extends Activity { Button button1; Button button2; Button button3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button1=(Button)findViewById(R.id.btn_test1); button2=(Button)findViewById(R.id.btn_test2); button3=(Button)findViewById(R.id.btn_test3); } //以下分别为在控件属性中绑定的方法 public void btn_test1(View view){ Toast.makeText(this,"Button1 clicked",Toast.LENGTH_SHORT).show(); } public void btn_test2(View v){ Toast.makeText(this,"Button2 clicked",Toast.LENGTH_SHORT).show(); } public void btn_test3(View view){ Toast.makeText(this,"Button3 clicked",Toast.LENGTH_SHORT).show(); } }
2.匿名内部类:也不需要activity实现OnClickListener接口。只需要在onCreate方法中获取控件实例,并重写setOnClickListener就好了。前两种方式可混用,即匿名内部类+响应XML文件定义的事件。附demo:
public class MainActivity extends Activity { Button button1; Button button2; Button button3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button1=(Button)findViewById(R.id.btn_test1); button2=(Button)findViewById(R.id.btn_test2); button3=(Button)findViewById(R.id.btn_test3); } //以下分别为在控件属性中绑定的方法 public void btn_test1(View view){ Toast.makeText(this,"Button1 clicked",Toast.LENGTH_SHORT).show(); } public void btn_test2(View v){ Toast.makeText(this,"Button2 clicked",Toast.LENGTH_SHORT).show(); } public void btn_test3(View view){ Toast.makeText(this,"Button3 clicked",Toast.LENGTH_SHORT).show(); } }
3. activity实现OnClickListener接口:在onCreate方法里为每个控件注册监听事件,重写onClick方法。附demo:
public class MainActivity extends Activity { Button button1; Button button2; Button button3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button1=(Button)findViewById(R.id.btn_test1); button2=(Button)findViewById(R.id.btn_test2); button3=(Button)findViewById(R.id.btn_test3); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(MainActivity.this,"Button1 clicked",Toast.LENGTH_SHORT).show(); } }); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(MainActivity.this,"Button2 clicked",Toast.LENGTH_SHORT).show(); } }); button3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(MainActivity.this,"Button3 clicked",Toast.LENGTH_SHORT).show(); } }); } }
短信API调用方式:
我的开发平台是Android Studio
先去mob注册一个账号,进入后台创建自己的应用,获取App key和App Sercet,下载短信验证码SDK,解压后将SMSSDK文件夹下的四个文件添加到你的project的libs目录下(如果不需要使用GUI库,可以去掉SMSSDKGUI)
MobCommons.jar Mob 通用公共库 必须
MobTools.jar Mob 工具公共库 必须
SMSSDK-<version>.aar SMSSDK 核心 必须
SMSSDKGUI-<version>.aar SMSSDK GUI 开源库 可选
然后:将以上文件按需放入Android Studio项目所要使用SMSSDK的Module所在的Libs里面,再在Module的build.gradle里面将libs加入仓库(repositories),
然后添加依赖(dependencies )示例如下:
repositories{ flatDir{ dirs 'libs' //就是你放aar的目录地址 } } dependencies { ....//你的其他依赖 compile name:'SMSSDK-<version>',ext:'aar' compile name:'SMSSDKGUI-<version>',ext:'aar' }</span>
在manifest文件中添加如下权限:
<uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.READ_SMS" /> <uses-permission android:name="android.permission.WRITE_SMS" /> <uses-permission android:name="android.permission.SEND_SMS" />
在“application”中添加如下activity:
<activity android:name="com.mob.tools.MobUIShell" android:configChanges="keyboardHidden|orientation|screenSize" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:windowSoftInputMode="stateHidden|adjustResize" />
项目启动时,添加如下代码:分别用你的appkey和appsercet代替
SMSSDK.initSDK(this, APPKEY, APPSECRETE);
短信验证API使用demo下载链接:https://github.com/qiuqianaile/LoginWithCheckedSMS