2014-03-06 177 views
0

我正在使用OnKeyListner來解決通過編輯文本上的軟鍵盤按下'Enter'鍵的問題。 [Android。]我想當用戶按下軟鍵盤上的回車鍵時,它應該執行一些操作 - >從編輯框中輸入並傳遞給某個函數進行處理。 這裏的代碼:輸入密鑰對密鑰列表程序不起作用

editbox.setOnKeyListener(new View.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)) { 

        // Code For action on key press 

        input = editbox.getText().toString(); 
        if(mEngine.init(input, getApplicationContext())) 
        {               sharePref = getSharedPreferences("info",MODE_PRIVATE); 
         edit = sharePref.edit(); 
         edit.putString("editbox",input); 
         edit.commit(); 


         //     inputDialog.dismiss(); 
        } 
        else 
        { 
         ............ 

        } 
        inputDialog.dismiss(); 


        return true; 
       } 
       return false; 
      } 
     });  

好像不working.Kindly幫助,如果我做錯了。

+0

什麼是EditText的inputType設置爲? –

回答

1

將此屬性設置在你的EditText

android:imeOptions="actionDone" 
android:imeActionLabel="Enter" 

您還可以使用setOnEditorActionListener 下面是示例代碼..

editbox.setOnEditorActionListener(new OnEditorActionListener() { 

      @Override 
      public boolean onEditorAction(TextView v, int actionId, 
        KeyEvent event) { 
       if(actionId == 0 || actionId== EditorInfo.IME_ACTION_DONE) 
       { 
        //Paste your code here. 
       } 
       return false; 
      } 

     }); 
+0

此外,爲此,您必須在EditText上設置'inputType'。否則,返回鍵不會被'actionDone'取代。並且返回鍵不會觸發'onEditorAction()' –

0

做的thses步驟可幫助

  1. 做這些當EditText hasFocus
  2. 啓用鍵盤監聽器的動作
  3. 當點擊Enter時,做你想做的事。