5

EditTextをクリックすると、単純な仮想キーボードが表示されません。カーソルは表示されますが、入力するキーボードはありません。

手動で開いてみましたが、うまくいきませんでした。

これが私のコードです:

public class CreateNote extends Activity {
EditText titleEdit;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.createnote);
    titleEdit = (EditText) findViewById(R.id.titleEdit);
    titleEdit.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            InputMethodManager imm = (InputMethodManager) CreateNote.this
                    .getSystemService(Service.INPUT_METHOD_SERVICE);
            imm.showSoftInput(titleEdit, 0);
        }
    });
    }
   }

レイアウトのスニペット:

 <FrameLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#989898" >

    <EditText
        android:id="@+id/titleEdit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/edittextdrawale"
        android:ems="10"
        android:textColor="#fff"
        android:textColorHint="#fff" >

        <requestFocus />
    </EditText>

</FrameLayout>

仮想キーボードのかくれんぼをする理由は何でしょうか?エミュレータではなく、実際のデバイスでテストします。

4

4 に答える 4

10

これで試してみてください、それは私のために働きました。

EditText etHorseName = (EditText) getView().findViewById(R.id.horseName);
etHorseName.clearFocus();

onCreate()あなたが望む場所で。

于 2013-02-11T11:12:08.467 に答える
3

遅い答えですが、コードを追加せずに解決する方法は次のとおりです。XMLからこれを削除するだけです。

<requestFocus />

これが設定されているときにキーボードが表示されない理由はわかりません...ただし、最初にフォーカスを失ってから編集テキストをクリックすると表示されます。Android 2.3.6で問題が発生しましたが、4.1.2で動作したため、初期のバグであった可能性があります。

于 2013-05-30T08:55:08.097 に答える
0

これは単なるデフォルトの動作であり、手動で行うことは想定されていません。コードから以下の部分を削除してください。

titleEdit.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {

        InputMethodManager imm = (InputMethodManager) CreateNote.this
                .getSystemService(Service.INPUT_METHOD_SERVICE);
        imm.showSoftInput(titleEdit, 0);
    }
});
于 2013-02-11T11:24:25.810 に答える
0

このコードでキーボードを非表示にして表示してみてください。

InputMethodManager imm = (InputMethodManager) this.getSystemService(Service.INPUT_METHOD_SERVICE);
// To show keyboard
imm.showSoftInput(titleEdit, 0);
// To hide keyboard
imm.hideSoftInputFromWindow(titleEdit.getWindowToken(), 0);  
于 2014-01-10T11:50:29.090 に答える