首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

异步加载进度条,障蔽搜索键

2012-07-15 
异步加载进度条,屏蔽搜索键当进行耗时的操作时,就会写个进度条在界面上运行。但是按返回键,搜索键时,进度条

异步加载进度条,屏蔽搜索键

当进行耗时的操作时,就会写个进度条在界面上运行。但是按返回键,搜索键时,进度条会消失,但是耗时的操作还在进行中,怎么办呢?

异步加载进度条,障蔽搜索键
进度条:ProgressDialog dialog;

1. 异步加载进度条屏蔽返回键很简单,只要设置dialog.setCancelable(false);即可。

2. 可是屏蔽搜索键没有现成的东西。
?想法一,重写onKeyDown函数:

定义个boolean boo = flase,在耗时操作中设置 boo = true;操作完成设置boo = flase;重写onKeyDown:public boolean onKeyDown(int keyCode, KeyEvent event) {        switch (keyCode) {            case KeyEvent.KEYCODE_SEARCH: {if(boo){                    return true;                     }else{                break;            }                            }        return super.onKeyDown(keyCode, event);    }

?

?运行发现此法不可行,按搜索键,搜索功能屏蔽了,但进度条还是消失了。

异步加载进度条,障蔽搜索键
原来异步加载进度条后,进度条获取了焦点,而onKeyDown是屏幕的,不是进度条的。so

dialog.setOnKeyListener(new DialogInterface.OnKeyListener(){    public boolean onKey(DialogInterface dialog, int keyCode,KeyEvent event) {    if (keyCode == KeyEvent.KEYCODE_SEARCH) {    return true;    }    return false;    }    });

?

?即可。

热点排行