在Android開發中,很多APP中都使用到驗證碼的獲取功能,獲取驗證碼的界面在點擊獲取驗證碼之後會有時間的變化和限制以及獲取驗證碼的按鈕不可再按。實現該界面的操作如下:
首先我們在XML文件中創建一個Button,並給它命名爲Captcha,設置好各種屬性,這裏不再贅述。
接下來,我們編寫Activity.java文件。在.java文件中實現倒計時效果是使用CountDownTime類實現的。
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private TimeCount time;
private Button bt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zhuce);
time=new TimeCount(60000,1000);
bt=findViewById(R.id.Captcha);
bt.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch(view.getId()){
case R.id.Captcha:
time.start();
break;
}
}
class TimeCount extends CountDownTimer{
public TimeCount(long m,long n){
super(m,n);
}
@Override
public void onTick(long l) {
bt.setBackgroundColor(Color.parseColor("#B6B6D8"));
bt.setClickable(false);
bt.setText("("+l/1000+")秒後可重新發送");
}
@Override
public void onFinish() {
bt.setText("重新獲取驗證碼");
bt.setClickable(true);
bt.setBackgroundColor(Color.parseColor("#4EB84A"));
}
}
}
歡迎大佬評論探討·······