0

EditText のエミュレーターでキーボードを表示しようとしていますが、何を試しても表示されません。

これは、XMLファイルで宣言する方法です:

<EditText
    android:id="@+id/editTextSearch"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="20dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="50dp"
    android:layout_weight="0.05"
    android:background="@color/white"
    android:ems="10"
     >

</EditText>

これは私がJavaファイルでそれを扱う方法です:

private void createTextEdit()
{
    EditText searchTextField = (EditText)findViewById(R.id.editTextSearch);
    searchTextField.addTextChangedListener(new TextWatcher()
    {
        public void afterTextChanged(Editable s)
        {
           System.out.println("AFTER TEXT CHANGED");                                                             
        }
        public void beforeTextChanged(CharSequence s,
        int start, int count, int after)
        {
             System.out.println("BEFORE TEXT CHANGED " + s);
        }

        public void onTextChanged(CharSequence s,
                int start, int before, int count)
        {
            System.out.println(s);
        }

    });

    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.showSoftInput(searchTextField, InputMethodManager.SHOW_IMPLICIT);
}

また、マニフェスト ファイルで次のように宣言しました。

<activity 
        android:name = "com.blabla.blablabla.MyActivity" 
        android:windowSoftInputMode="stateVisible">
    </activity>

また、キーボードは表示されません。私は何が欠けていますか?

4

4 に答える 4

1

コードはデバイス上で完全に正常に機能します。私によると、エミュレーターはハードキーパッドを開いているので、ソフトキーパッドは表示されません。このコードをデバイスで実行してみてください。

于 2013-03-04T12:32:13.233 に答える
1

エミュレータに「ハードウェア キーボードが存在しない」ことを確認してください。

于 2013-03-04T12:40:28.203 に答える
0

これを試して;

<EditText
....
<requestFocus /> 
</EditText>
于 2013-03-04T12:26:44.350 に答える
0

以下のように、ソフトキーボードを強制的に開いてみてください。

  InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
  imm.showSoftInput(searchTextField, InputMethodManager.SHOW_FORCED); <-- change here.
于 2013-03-04T12:33:33.437 に答える