2012-08-12 180 views
1

我想让我的onTextChanged类在用户输入“空格”时读取,以便我可以清除EditText视图。问题是空格键被按下时什么也没有发生。有人知道我做错了什么吗?我的程序不会崩溃,它什么都不做。按下按钮时清除edittext

public void onTextChanged(CharSequence s, int start, int before, 
        int count) { 
       SS.setText(s); 
       if (s.equals("r")) { 
        SS.setText(s); 
        et.setText(" "); 
       } 
      } 

       @Override 
       public void beforeTextChanged(CharSequence s, int start, int count, 
         int after) { 
        et.setTextColor(Color.parseColor("#000000")); 

       } 

       @Override 
       public void afterTextChanged(final Editable s) { 
        // cancel the previous search if any 

        // toasted(); 
        if (delayedAction != null) { 
         handler.removeCallbacks(delayedAction); 
        } 
        // toasted(); 

        // define a new search 
        delayedAction = new Runnable() { 

         @Override 
         public void run() { 
          // start your search 
          // toasted(); 

          // if (s.toString().equals(current)) { 
          // // toasted(); <== Here is where it needs to work 
          // // Toast.LENGTH_LONG).show(); 
          // } 

          et.setTextColor(Color.parseColor("#C0C0C0")); 
          toasted(); 
          tv.setText(et.getText().toString()); 
          tv.setTextColor(Color.parseColor("#66CC66")); 
          et.setText(""); 
         } 

        }; 
+0

试试这个:'et.setText(“”); //没有空间。我不确定,但我认为你正在制造一个无限循环。 – iTurki 2012-08-12 02:50:07

+0

“SS”的价值是什么? – iTurki 2012-08-12 02:56:04

+0

我做了一个新的textview来打印出s的值。并且textview的名字是SS – 2012-08-12 02:58:48

回答

1

应该s.equals(" ")而不是s.equals(' ')

+0

我尝试过,得到了同样的结果,但不幸的是它改变回来。 – 2012-08-12 02:30:06

+0

它为我工作。可能会记录下来,看看会有什么“s”出现,多于一个空间? – kosa 2012-08-12 02:42:14

+0

从我测试过的东西,没有价值。我确信s是用户的输入。我将发布完整的代码段 – 2012-08-12 02:50:26

0

,您可以尝试。

Pattern pattern = Pattern.compile("\\s"); 
Matcher matcher = pattern.matcher(s); 
boolean found = matcher.find(); 
+0

这是干什么的? – 2012-08-12 14:09:19