資源簡介
【核心代碼】
public class NotpwdTelActivity extends Activity implements OnClickListener {
String APPKEY = "11bbdb5fe3eee";
String APPSECRETE = "ea0f2810f804d2d1086078e438754112";
// 手機號輸入框
private EditText inputPhoneEt;
// 驗證碼輸入框
private EditText inputCodeEt;
// 獲取驗證碼按鈕
private TextView requestCodeBtn;
// 注冊按鈕
private Button commitBtn;
//計時器
int i = 60;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_notpwdcode);
//初始化控件
init();
}
/**
* 初始化控件
*/
private void init() {
inputPhoneEt = (EditText) findViewById(R.id.edtTel);
inputCodeEt = (EditText) findViewById(R.id.edtCode);
requestCodeBtn = (TextView) findViewById(R.id.txtObtain);
commitBtn = (Button) findViewById(R.id.btnCode);
//點擊事件聲明
requestCodeBtn.setOnClickListener(this);
commitBtn.setOnClickListener(this);
// 啟動短信驗證sdk
SMSSDK.initSDK(this, APPKEY, APPSECRETE);
EventHandler eventHandler = new EventHandler(){
@Override
public void afterEvent(int event, int result, Object data) {
Message msg = new Message();
msg.arg1 = event;
msg.arg2 = result;
msg.obj = data;
handler.sendMessage(msg);
}
};
//注冊回調監聽接口
SMSSDK.registerEventHandler(eventHandler);
}
@Override
public void onClick(View v) {
String phoneNums = inputPhoneEt.getText().toString();
switch (v.getId()) {
case R.id.txtObtain:
// 1. 通過規則判斷手機號
if (!judgePhoneNums(phoneNums)) {
return;
} // 2. 通過sdk發送短信驗證
SMSSDK.getVerificationCode("86", phoneNums);
// 3. 把按鈕變成不可點擊,并且顯示倒計時(正在獲?。?
requestCodeBtn.setClickable(false);
requestCodeBtn.setText("重新發送(" i ")");
new Thread(new Runnable() {
@Override
public void run() {
for (; i > 0; i--) {
handler.sendEmptyMessage(-9);
if (i <= 0) {
break;
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
handler.sendEmptyMessage(-8);
}
}).start();
break;
case R.id.btnCode:
//將收到的驗證碼和手機號提交再次核對
SMSSDK.submitVerificationCode("86", phoneNums, inputCodeEt
.getText().toString());
break;
}
}
/**
*獲取驗證碼SDK
*/
@SuppressLint("HandlerLeak") Handler handler = new Handler() {
public void handleMessage(Message msg) {
if (msg.what == -9) {
requestCodeBtn.setText("重新發送(" i ")");
} else if (msg.what == -8) {
requestCodeBtn.setText("獲取驗證碼");
requestCodeBtn.setClickable(true);
i = 30;
} else {
int event = msg.arg1;
int result = msg.arg2;
Object data = msg.obj;
Log.e("event", "event=" event " " result " " data);
if (result == SMSSDK.RESULT_COMPLETE) {
// 短信注冊成功后,返回MainActivity,然后提示
if (event == SMSSDK.EVENT_SUBMIT_VERIFICATION_CODE) {// 提交驗證碼成功
Toast.makeText(getApplicationContext(), "提交驗證碼成功",
Toast.LENGTH_SHORT).show();
Intent intent = new Intent(NotpwdTelActivity.this,
NotpwdActivity.class);
intent.putExtra("telNo", inputPhoneEt.getText().toString());
startActivity(intent);
finish();
} else if (event == SMSSDK.EVENT_GET_VERIFICATION_CODE) {
Toast.makeText(getApplicationContext(), "正在獲取驗證碼",
Toast.LENGTH_SHORT).show();
} else {
((Throwable) data).printStackTrace();
}
}
}
}
};
/**
* 判斷手機號碼是否合理
*
* @param phoneNums
*/
private boolean judgePhoneNums(String phoneNums) {
if (isMatchLength(phoneNums, 11)) {
return true;
}
Toast.makeText(this, "手機號碼輸入有誤!",Toast.LENGTH_SHORT).show();
return false;
}
/**
* 判斷一個字符串的位數
* @param str
* @param length
* @return
*/
@TargetApi(Build.VERSION_CODES.GINGERBREAD) public static boolean isMatchLength(String str, int length) {
if (str.isEmpty()) {
return false;
} else {
return str.length() ==length ? true : false;
}
}
/**
* progressbar
*/
@SuppressWarnings("unused")
private void createProgressBar() {
FrameLayout layout = (FrameLayout) findViewById(android.R.id.content);
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
layoutParams.gravity = Gravity.CENTER;
ProgressBar mProBar = new ProgressBar(this);
mProBar.setLayoutParams(layoutParams);
mProBar.setVisibility(View.VISIBLE);
layout.addView(mProBar);
}
@Override
protected void onDestroy() {
SMSSDK.unregisterAllEventHandler();
super.onDestroy();
}
}
代碼片段和文件信息
/**?Automatically?generated?file.?DO?NOT?MODIFY?*/
package?cn.android.shopCommentjerry;
public?final?class?BuildConfig?{
????public?final?static?boolean?DEBUG?=?true;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????475??2016-04-20?08:31??Shop_Comments\.classpath
?????文件????????849??2016-04-20?08:31??Shop_Comments\.project
?????文件????????177??2016-04-20?08:31??Shop_Comments\.settings\org.eclipse.jdt.core.prefs
?????文件???????3084??2016-10-12?14:44??Shop_Comments\AndroidManifest.xm
?????文件???????3084??2016-10-12?14:44??Shop_Comments\bin\AndroidManifest.xm
?????文件???????4549??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\basrt\ba
?????文件???????3098??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\basrt\ba
?????文件???????1230??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\basrt\ffd.class
?????文件???????1216??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\basrt\MyGallery$1.class
?????文件????????698??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\basrt\MyGallery$2.class
?????文件???????2463??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\basrt\MyGallery.class
?????文件???????1107??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\basrt\NoScrollListView.class
?????文件???????1008??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\basrt\ZoomBitmap.class
?????文件???????1294??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\model\AppreModel.class
?????文件????????524??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\model\AppteridAdapter$ViewHolder.class
?????文件???????3151??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\model\AppteridAdapter.class
?????文件????????756??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\model\AreaModel.class
?????文件????????438??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\model\CityAdapter$ViewHolder.class
?????文件???????2388??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\model\CityAdapter.class
?????文件????????760??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\model\CityModel.class
?????文件????????516??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\model\DeleteAdapter$ViewHolder.class
?????文件???????3193??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\model\DeleteAdapter.class
?????文件???????1273??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\model\DeleteModel.class
?????文件???????3577??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\model\ExpandableListAdapter.class
?????文件????????445??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\model\ImageAdapter$ViewHolder.class
?????文件???????2342??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\model\ImageAdapter.class
?????文件???????1251??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\model\ProviceModel.class
?????文件????????450??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\model\ProvincAdapter$ViewHolder.class
?????文件???????2414??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\model\ProvincAdapter.class
?????文件????????880??2016-10-15?21:59??Shop_Comments\bin\classes\cn\android\model\ProvincModel.class
............此處省略345個文件信息
- 上一篇:android 底部導航欄的實現(tab簽切換效果)
- 下一篇:企業進銷存管理系統
評論
共有 條評論