158

マニフェストに Edittext がありandroid:windowSoftInputMode="stateVisible"ます。これで、アクティビティを開始するとキーボードが表示されます。それを隠す方法は?android:windowSoftInputMode="stateHiddenキーボードが表示されているときにアプリを最小化して再開すると、キーボードが表示されるはずなので使用できません。で試しました

InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);

しかし、うまくいきませんでした。

4

23 に答える 23

377

AndroidManifest.xml

<activity android:name="com.your.package.ActivityName"
          android:windowSoftInputMode="stateHidden"  />

または試す

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN)‌​;

こちらもご確認ください

于 2013-09-24T09:19:07.753 に答える
47

editText の親ビューに 2 つの属性を追加するだけです。

android:focusable="true"
android:focusableInTouchMode="true"
于 2016-04-19T06:48:18.477 に答える
14

新しいアクティビティの開始時にソフトキーボードを非表示にするには、以下onCreate()onStart()コードを使用できます。

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
于 2014-09-11T11:47:48.850 に答える
8

次のテキストを xml ファイルに追加します。

<!--Dummy layout that gain focus -->
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:focusable="true"
                android:focusableInTouchMode="true"
                android:orientation="vertical" >
            </LinearLayout>
于 2014-09-22T11:37:18.593 に答える
5

このコードを Java ファイルに入れて、edittext で object の引数を渡します。

private void setHideSoftKeyboard(EditText editText){
    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
于 2015-01-16T14:09:14.590 に答える
3

これは私がしたことです:

yourEditText.setCursorVisible(false); //This code is used when you do not want the cursor to be visible at startup
        yourEditText.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                v.onTouchEvent(event);   // handle the event first
                InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
                if (imm != null) {

                    imm.hideSoftInputFromWindow(v.getWindowToken(), 0);  // hide the soft keyboard
                    yourEditText.setCursorVisible(true); //This is to display cursor when upon onTouch of Edittext
                }
                return true;
            }
        });
于 2015-07-10T03:59:28.543 に答える
3

これも試してみてください

Ed_Cat_Search = (EditText) findViewById(R.id.editText_Searc_Categories);

Ed_Cat_Search.setInputType(InputType.TYPE_NULL);

Ed_Cat_Search.setOnTouchListener(new View.OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
        Ed_Cat_Search.setInputType(InputType.TYPE_CLASS_TEXT);
        Ed_Cat_Search.onTouchEvent(event); // call native handler
        return true; // consume touch even
    }
});
于 2014-05-19T12:37:48.483 に答える