Android开发中控件的三种点击事件+短信API调用方式

来源:互联网 发布:实木床 品牌 知乎 编辑:程序博客网 时间:2024/06/03 05:19

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

2 0