2014-08-30 39 views
-1

我需要显示原来的 我试图让onKeyListener前改变EditView中的输入的文本之前,但它并没有与虚拟键盘 在这里工作是我尝试如何改变TextView中的输入的文本显示它

OnKeyListener okl = new EditText.OnKeyListener() { 

     @Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) 
     { 
      EditText et = (EditText) v; 
      if(secFlag.equals(false)) 
      { 
       if(petitionText.getText().length()==19) 
       { 
        if(keyCode==KeyEvent.KEYCODE_COMMA) 
        { 
         secFlag=true; 
        } 
       } 
      } 
      if(secFlag) 
      { 
       if(pos<=c.length-1); 
       shownText.append(c[pos]); 
       if(keyCode==KeyEvent.KEYCODE_SPACE) 
       { 
        sBuilder.append(' '); 
       }else if (keyCode==KeyEvent.KEYCODE_COMMA) { 
        sBuilder.append(','); 
       }else 
       { 

        sBuilder.append((char)event.getUnicodeChar()); 
       } 
       petitionText.setText(shownText.toString()); 
       pos=pos+1; 
       petitionText.setSelection(petitionText.getText().length()-1); 
      } 
      return false; 
     } 
    }; 

回答

0

您可以使用TextWatcher类。

final EditText myedit = (EditText) findViewById(R.id.myedit); 
    myedit.setOnKeyListener(this); 
    TextWatcher fieldValidatorTextWatcher = new TextWatcher() { 
     @Override 
     public void afterTextChanged(Editable s) { 
     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      Log.i("my", "onTextChanged=" + s); 
     } 
    }; 
    myedit.addTextChangedListener(fieldValidatorTextWatcher); 
相关问题