2011-01-27 4 views
6

こんにちはIMEアクションをオーバーライドして仮想キーボードで検索を表示しようとしています。私のEditTextはアクティビティに配置されたコントロール内にあります。android - IMEを制御すると入力する代わりに検索アクションが表示される

私は EditTextに設定され、このリスナーを持っているコードでは
<EditText android:id="@+id/txtSearch" 
    android:textSize="18dp" 
    android:textColor="@color/main_text_black" 
    android:layout_width="247dp" 
    android:layout_height="fill_parent" 
    android:imeOptions="actionSearch" 
    android:gravity="center_vertical" 
    android:singleLine="true" 
    android:background="@null" 
    android:layout_alignParentLeft="true" 
    android:layout_marginLeft="38px" /> 

::私はEnterキーを押したときに

@Override 
public boolean onEditorAction(TextView view, int arg1, KeyEvent arg2) { 
    if((arg1 == EditorInfo.IME_ACTION_SEARCH) { 
     for(OnSearchListener listener : _listeners) { 
      listener.OnSearch(view, getSearchString()); 
     } 
    } 
    InputMethodManager imm = 
     (InputMethodManager)_context.getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0); 

    return false; 
} 

arg1常に0として戻ってくる、である。ここ

は私が持っているものです"不明"。私はsendMessageのような別のキーボードも試してみましたが、どちらもうまく動作しませんでした。どうしたの?

ありがとうございます!

+0

私はすでにこれをコントロールから削除してアクティビティに追加しましたが、それでも機能しません。私もsendMessageを試しました。何もない!アンドロイド:imeOptions = "actionSend | flagNoEnterAction" \t \t \t \tアンドロイド:inputType = "textShortMessage | textAutoCorrect | textCapSentences | textMultiLine" そのIMEなどが完全に無効にしたり、どこかの設定でオーバーライドされます。私がしたことは、xmlのオプションを追加して、何が表示されているかを試してみることでした。私はいつも同じ窓を得る。仮想キーボードはまったく変更されません。 – dropsOfJupiter

答えて

2

がdroid 2.2にアップデートされ、動作し始めました。恐ろしいバグ!

3

xmlファイルにandroid:inputType = "text"属性を指定する必要があります。

関連する問題