2013-10-23 31 views
0

我正在使用TextWatcher,因此當我開始在我的編輯文本中輸入內容時,它顯示全部大寫,但我需要添加一項功能,當我按ENTER時,以小寫字母。我該怎麼做?處理UpperCase和LowerCase字母EditText Android

這裏是textwatcher

scene.addTextChangedListener(new TextWatcher() { 

      @Override 
      public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {    

      } 
       @Override 
      public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, 
          int arg3) {    
      } 
      @Override 
      public void afterTextChanged(Editable arg0) { 
        String s=arg0.toString(); 

       if(!s.equals(s.toUpperCase())) 
       { 
       s=s.toUpperCase(); 
       scene.setText(s); 
       scene.setSelection(scene.getText().length()); 

       } 
      } 
     }); 

這裏是處理的事件中的代碼ENTER

scene.setOnKeyListener(new OnKeyListener() { 

      @Override 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 
       // TODO Auto-generated method stub 
       if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
         (keyCode == KeyEvent.KEYCODE_ENTER)) { 
        String s = scene.getText().toString(); 
        s=s+'\n'; 
        scene.setText(s); 
        scene.setSelection(scene.getText().length()); 
         ib2(scene); 

         return true; 
        } 
       return false; 
      } 

     }); 
+0

,什麼是你的問題? – Blackbelt

+0

請在評論前正確地閱讀問題。 –

+0

但我需要添加一個功能,當我按ENTER鍵,然後打字的所有應該在小字母 –

回答

1

我猜你需要toLowerCase

String input = "Cricket!"; 
String upper = input.toUpperCase(); //stores "CRICKET!" 
String lower = input.toLowerCase(); //stores "cricket!" 

在您的安其方法像這樣做

String s = scene.getText().toString(); 
    s=s.toLowerCase(); 
    scene.setText(s); 

更新您的setOnKeyListener方法這樣

scene.setOnKeyListener(new OnKeyListener() { 

      @Override 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 
       // TODO Auto-generated method stub 
       if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
         (keyCode == KeyEvent.KEYCODE_ENTER)) { 


         String s = scene.getText().toString(); 
         s=s.toLowerCase(); 
         scene.setText(s); 
         scene.setSelection(scene.getText().length()); 
         ib2(scene); 

         return true; 
        } 
       return false; 
      } 

     }); 
+0

檢查更新的答案小寫和大寫之間切換。 –

+0

不,它也沒有工作,我猜textwatcher方法不是一個很好的方法來處理這個問題 –

+0

你能幫助我一些其他的方法,我已經嘗試幾乎所有的東西。我試圖掛鉤Shift鍵,但無法找到正確的方法 –

相關問題