日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android handle显示加载框

發(fā)布時(shí)間:2024/4/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android handle显示加载框 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


今天,講講使用handle顯示加載框,當(dāng)任務(wù)完成后,隱藏加載框。

第一種代碼:

?? 1. 定義常量和加載框
??? private final static int SEARCH_PREPARE = 100;
??? private final static int SEARCH_FINISHED = 120;
??? private Dialog exitDialog;

?

? 2.定義handle變量
? private Handler handler = new Handler() {

??????? @Override
??????? public void handleMessage(Message msg) {
??????????? super.handleMessage(msg);
??????????? switch (msg.what) {
??????????????? /* 隱藏+號 顯示進(jìn)度條 */
??????????????? case SEARCH_PREPARE: {
??????????????????? if (exitDialog == null) {???????????????????????? //顯示一個(gè)加載框
??????????????????????? exitDialog = new Dialog(mContext, R.style.CommonDialogStyle);
??????????????????????? exitDialog.setContentView(R.layout.dialog_layout);
??????????????????????? exitDialog.getWindow().setBackgroundDrawableResource(R.color.cache);
??????????????????????? exitDialog.setCancelable(false);
??????????????????? }
??????????????????? exitDialog.show();

??????????????????? if (edts.getText().toString().equals("P6S")){
??????????????????????? handler.postDelayed(new Runnable() {
??????????????????????????? @Override
??????????????????????????? public void run() {
??????????????????????????????? if (exitDialog.isShowing()) {
??????????????????????????????????? handler.sendEmptyMessage(SEARCH_FINISHED);
??????????????????????????????? }
??????????????????????????? }
??????????????????????? }, 10 * 1000);
??????????????????? }else {
??????????????????????? handler.postDelayed(new Runnable() {
??????????????????????????? @Override
??????????????????????????? public void run() {
??????????????????????????????? if (exitDialog.isShowing()) {
??????????????????????????????????? handler.sendEmptyMessage(SEARCH_FINISHED);
??????????????????????????????? }
??????????????????????????? }
??????????????????????? }, 5 * 1000);
??????????????????? }

??????????????? }

??????????????? break;
??????????????? /* 隱藏進(jìn)度條 */
??????????????? case SEARCH_FINISHED: {

??????????????????? if (exitDialog.isShowing()) {
??????????????????????? Toast.makeText(mContext,R.string.channel_request_timeout,Toast.LENGTH_LONG).show();
??????????????????????? exitDialog.dismiss();
??????????????????? }
??????????????? }
??????????????? break;
??????????? }
??????? }
??? };

?? 3.使用時(shí)直接調(diào)用代碼handler.sendEmptyMessage(SEARCH_PREPARE);這樣,如果任務(wù)完成自己取消加載框。如果沒有完成,5秒后也會自己取消加載框。


第二種代碼:
???? 第一種代碼有個(gè)缺點(diǎn),當(dāng)多次請求時(shí),第一次的5秒后的判斷加載框顯示會與后面的沖突,導(dǎo)致邏輯出現(xiàn)錯(cuò)誤。第一種代碼只適合不連續(xù)顯示加載框的時(shí)候可以調(diào)用。


?1. 定義常量和加載框
??? private final static int SEARCH_PREPARE = 100;
??? private final static int SEARCH_FINISHED = 120;
??? private Dialog exitDialog;

? 2.定義handle變量
private Handler handler = new Handler() {

??@Override
??public void handleMessage(Message msg) {
???super.handleMessage(msg);
???switch (msg.what) {
??????????????? /* 隱藏+號 顯示進(jìn)度條 */
????case ADD_PREPARE: {
?????if (exitDialog == null) {???????????????????????? //顯示一個(gè)加載框
??????exitDialog = new Dialog(DeviceAddActivity.this, R.style.CommonDialogStyle);
??????exitDialog.setContentView(R.layout.dialog_layout);
??????exitDialog.getWindow().setBackgroundDrawableResource(R.color.cache);
??????exitDialog.setCancelable(false);
?????}
?????exitDialog.show();
?????handler.postDelayed(runnable, 5 * 1000);
????}
????break;
???? /* 隱藏進(jìn)度條 */
????case ADD_FINISHED: {
?????if (exitDialog.isShowing()) {
??????exitDialog.dismiss();
?????}
????}
???}
??}
?};


3定義runnable變量
private? Runnable runnable=new Runnable() {
??@Override
??public void run() {
???if (exitDialog.isShowing()) {
????handler.sendEmptyMessage(ADD_FINISHED);
???}
??}
?};


?4.使用時(shí)直接調(diào)用代碼handler.sendEmptyMessage(SEARCH_PREPARE);
這樣,如果任務(wù)完成自己取消加載框。并且移除runnable。具體代碼:
????????????????????? if (exitDialog != null && exitDialog.isShowing()) {
????exitDialog.dismiss();
????handler.removeCallbacks(runnable);???? //去掉此次的加載框的監(jiān)聽
???}
如果沒有完成,5秒后也會自己取消加載框。


android 使用handle顯示加載框就講完了。

就這么簡單。


總結(jié)

以上是生活随笔為你收集整理的android handle显示加载框的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。