OnFocusChangeListener 锁定 gui

发布于 2024-12-05 21:12:30 字数 634 浏览 1 评论 0原文

我的应用程序中有一个 editText,并且我正在添加一个侦听器,如下面的代码所示。

if(edit!=null){
        edit.setOnFocusChangeListener(new View.OnFocusChangeListener() {            
            public void onFocusChange(View v, boolean hasFocus) {           
                // TODO Auto-generated method stub
                if( paramKey!=null){

                    if(!hasFocus){
                    if(edit.getText()!=null)
                        dataModel.updateParamsValue(paramKey, edit.getText().toString());
                    }

                }
            }

        });
    }

当我专注于 editText 并输入它锁定 gui 的文本时,我会错过什么吗?

I have an editText in my application and I'm adding a listener like in code below

if(edit!=null){
        edit.setOnFocusChangeListener(new View.OnFocusChangeListener() {            
            public void onFocusChange(View v, boolean hasFocus) {           
                // TODO Auto-generated method stub
                if( paramKey!=null){

                    if(!hasFocus){
                    if(edit.getText()!=null)
                        dataModel.updateParamsValue(paramKey, edit.getText().toString());
                    }

                }
            }

        });
    }

When I focus to my editText and enter a text it locks gui, do I miss something?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

×纯※雪 2024-12-12 21:12:30

dataModel.updateParamsValue 是一个繁重的操作吗?您的侦听器在 UI 线程中工作,因此它将锁定 UI 直到完成。尝试像这样更改代码:

if(edit.getText()!=null)
                v.post(new Runnable(){
                    dataModel.updateParamsValue(paramKey, edit.getText().toString());
                });
            }

Is dataModel.updateParamsValue a heavy operation? Your listener works in the UI thread, so it will lock the UI till it completes. Try changing code like this:

if(edit.getText()!=null)
                v.post(new Runnable(){
                    dataModel.updateParamsValue(paramKey, edit.getText().toString());
                });
            }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文