首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭为空或空文本的Touch事件

关闭为空或空文本的Touch事件
EN

Stack Overflow用户
提问于 2014-07-01 06:42:21
回答 2查看 63关注 0票数 0

我有一条短信可以激活触控事件。现在,如果我的文本是空的或空的,或者它上显示了提示,那么Touch事件必须被停用。

代码语言:javascript
复制
text1.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if(text1.equals("")){

          }
          else{
         switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                text1.setBackgroundColor(Color.RED);
            InputConnection ic = getCurrentInputConnection();
            ic.commitText(textOne, 1);
              break;
            case MotionEvent.ACTION_UP:
                 text1.setBackgroundColor(Color.YELLOW);
              break;
         }     
    }

        return true;
    }
}

但是,当我在上述特定条件下触摸我的文本时,它会使屏幕崩溃,同时还会激活touch。有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-01 06:47:07

我认为您的应用程序崩溃是因为如果text1为null,则在尝试以下操作时将出现空指针异常:if(text1.equals(""))

所以你应该试一试:

代码语言:javascript
复制
text1.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if(text1!=null && !text1.trim().equals("")){
         switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                text1.setBackgroundColor(Color.RED);
            InputConnection ic = getCurrentInputConnection();
            ic.commitText(textOne, 1);
              break;
            case MotionEvent.ACTION_UP:
                 text1.setBackgroundColor(Color.YELLOW);
              break;
        }     
    }

        return true;
    }
}
票数 1
EN

Stack Overflow用户

发布于 2014-07-01 09:03:32

最后我找到了答案。解决办法是:

代码语言:javascript
复制
 if(text1.getText()!=null && !text1.getText().equals("")){
  text1.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {

         switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                text1.setBackgroundColor(Color.RED);
            InputConnection ic = getCurrentInputConnection();
            ic.commitText(textOne, 1);
              break;
            case MotionEvent.ACTION_UP:
                 text1.setBackgroundColor(Color.YELLOW);
              break;
         }     


        return true;
    }
}

);}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24503914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档