2012-03-25 20 views
1

私はprogrammagitcalllyこのコードでEditViewを作成しています:ビューのハードウェアキーボード入力を処理する方法は?

mSearchBar = new EditText(this); 

    mSearchBar.setHint("Enter sim name."); 

    mSearchBar.setLayoutParams(new LayoutParams(
       layoutWidth, 
       LayoutParams.WRAP_CONTENT)); 

    mSearchBar.setOnEditorActionListener(mEditorAction); 

    mSearchBar.setImeOptions(EditorInfo.IME_ACTION_SEARCH); 

    mSearchBar.setInputType(
       InputType.TYPE_CLASS_TEXT 
      | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS 
      ); 

は、それから私は...

private OnEditorActionListener mEditorAction = new OnEditorActionListener() { 
    @Override 
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
     if(actionId == EditorInfo.IME_ACTION_SEARCH) { 
      gotoSim(v.getText().toString()); 
      InputMethodManager imm = (InputMethodManager)SLMapTest.this 
       .getSystemService(SLMapTest.INPUT_METHOD_SERVICE); 
      imm.hideSoftInputFromWindow(v.getWindowToken(), 0); 
      mSearch.collapseActionView(); 
      return true; 
     } 
     return false; 
    } 
}; 

でmEditorActionを持っているが(私はグーグルのビットから得た)このコードは」doesnのハードウェアキーボードでうまくやっているようです。これを修正するにはどうすればよいですか?

答えて

3

は、あなたのビューにonKeyListener()を添付し、キーリスナーでリスナー

if(keyCode == KeyEvent.KEYCODE_ENTER) //do something

関連する問題