2014-03-06 129 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时,做你想做的事。