2012-10-17 174 views
2

有人可以用软键盘帮我输入密钥监听器吗?Android输入密钥监听器

我需要一个回车键监听器就像一个按钮,监听器,将有内部 几个editext听众这样

enterkey.setOnClickListener(new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     if(editext1.getText().toString().equalsIgnoreCase("test1")) { 
      button3.performClick(); 
     } 
     if(editext1.getText().toString().equalsIgnoreCase("test2")) { 
      button4.performClick(); 
     } 
    } 
); 

我还需要像下面这是正确的?

 if(editext1.getText().toString().equals.null)) { 
      testwrong.setText("Wrong"); 

感谢所有帮助


现在我已经尝试使用此代码,但总是收到一个空值时,我打进去吗? 任何人都可以提出一个解决方案来避免这种情况吗?

 editext.setOnKeyListener(new View.OnKeyListener() { 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      // TODO Auto-generated method stub 
      if (keyCode==KeyEvent.KEYCODE_ENTER) { 
       if("test1".equalsIgnoreCase(anstext.getText().toString())) { 
        but4.performClick(); 
        }} 
       else 
       if("test2".equalsIgnoreCase(editext.getText().toString())) { 
       but5.performClick(); 
       } 

      if("test5".equalsIgnoreCase(editext.getText().toString())) { 
      but6.performClick(); 
      } 

      if("test7".equalsIgnoreCase(editext.getText().toString())) { 
      but7.performClick(); 
      } 
      if (editext.getText().toString() != null){ 
       testwrong.seText("wrong");    } 

     return true; 




     } }); 
+1

请在发布前格式化你的代码。 –

+0

问题是什么? – Blackbelt

回答

7

如果你想赶上用户按Edittext

yourEditText.setOnKeyListener(new View.OnKeyListener() { 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 
       // TODO Auto-generated method stub 
       if (keyCode==KeyEvent.KEYCODE_ENTER) { //Whenever you got user click enter. Get text in edittext and check it equal test1. If it's true do your code in listenerevent of button3 
        if("test1".equals(edt.getText().toString())) { 
         //paste your code in button3 listener here 
         } 
       } 

} 
    ) 

输入寄存器onKeyListener这部分是错误。

如果(editext1.getText()的toString()equals.null。)){ testwrong.setText( “错误的”);

你应该改变

if (editext1.getText().toString() != null && !editext1.getText().toString().isEmpty()) { 
    // doSomething 
} 
+0

我喜欢这个,但是如果在按下回车键的时候如果要在编辑文本框中输入文本字符串呢? – C0dexe

+0

您想在用户按下“Enter”键时在“EditText”中获取文本吗? –

+0

我的意思是,如果编辑文本框中有单词“test1”,而按下Enter键,则执行按钮单击按钮3,谢谢 – C0dexe

16

在你EditText你应该使用imeOptions指定键盘动作。

<EditText 
     android:id="@+id/query" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:imeOptions="actionGo" 
     android:inputType="text" /> 

而且在活动的类:

EditText editText = (EditText) findViewById(R.id.query); 
editText.setOnEditorActionListener(new OnEditorActionListener() { 
      public boolean onEditorAction(TextView v, int actionId, 
        KeyEvent event) { 
        if (actionId == EditorInfo.IME_ACTION_GO) { 

         return true; 
        } 
        return false; 
       } 
      });