public class SendSmsTools {
private int count ;
public static final int MSG_CODE = 10;
private TextView tv;
private int myCount;
private String hint="重新获取";
private int id;
Context context;
public SendSmsTools(int count, TextView tv, String hint, int id,Context context) {
this.count = count;
this.tv = tv;
this.hint = hint;
this.id = id;
myCount=count;
this.context=context;
}
public Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case MSG_CODE:
if (count<0){
handler.removeMessages(MSG_CODE);
if (tv!=null){
tv.setEnabled(true);
tv.setText(hint);
}
}else {
tv.setEnabled(false);
if (TextUtils.isEmpty(context.getResources().getString(id))){
tv.setText(count+"");
}else {
tv.setText(context.getResources().getString(id,count));
}
count--;
handler.sendEmptyMessageDelayed(MSG_CODE,1000);
}
break;
}
}
};
public void start() {
count=myCount;
handler.sendEmptyMessage(MSG_CODE);
}
}
这是一个获取的工具类。使用如下:
public class MainActivity extends AppCompatActivity {
TextView sms;
SendSmsTools tools;
Handler handle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sms= (TextView) findViewById(R.id.sms);
tools=new SendSmsTools(10,sms,"重新获取",R.string.send,this);
handle=tools.handler;
sms.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tools.start();
}
});
}
}
以后要是使用验证码功能,几行代码就搞定了。大家有什么
本文介绍了一个用于实现短信验证码倒计时功能的工具类,通过Handler和Message机制控制TextView显示剩余时间,并提供重新获取选项。适用于Android应用中验证码功能的快速实现。
1057

被折叠的 条评论
为什么被折叠?



