0

Androidでクリックした後にキーボードを非表示にしたいのですEditTextが、コードの下で試しましたが、機能しません。

 mPassword.setInputType(InputType.TYPE_CLASS_NUMBER);
    mPassword.requestFocus();
    InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    mgr.showSoftInput(mPassword, InputMethodManager.RESULT_HIDDEN);

android:windowSoftInputMode="stateHidden"活動マニフェストにも記載しています。まだキーボードを取得しています。ソフト キーボードを非表示にする方法を教えてください。

4

4 に答える 4

1

次のコードを使用して、ソフト キーボードを非表示にすることができます。

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

また、

アクティビティの開始時に非表示にする場合は、manifestファイルを次のように編集します

<activity android:name="com.your.package.ActivityName"
android:windowSoftInputMode="stateHidden"  />
于 2013-10-23T06:56:05.487 に答える
0

このようにしてみて、

your_edittext.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                InputMethodManager m = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                if (m != null) {
                    m.toggleSoftInput(0, InputMethodManager.HIDE_IMPLICIT_ONLY);
                    your_edittext.clearFocus();
                }
            }
        });
于 2013-10-23T07:18:50.293 に答える
0

キーボードをどこからでも隠すソリューションは次のとおりです。

最初に、選択したアクティビティで、状態のリスナーと、(開いている状態に基づいて) 終了を行うメソッドを作成します。

public class MainActivity extends SherlockFragmentActivity {

  private boolean mKeyboardOpen = false;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    Log.d(TAG, "onCreate()");

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    // add "keyboard open listener"
    final View v = findViewById(R.id.pager);
    v.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
      @Override
      public void onGlobalLayout() {
        int hRoot = v.getRootView().getHeight();
        int hView = v.getHeight();
        int heightDiff = hRoot - hView;
        // if more than 150 pixels, its probably a keyboard...
        mKeyboardOpen = heightDiff > 150;
        Log.d(TAG, "hRoot=" + hRoot + ", hView=" + hView + ", mKeyboardOpen=" + mKeyboardOpen);
      }
    });
  }


  public void closeSoftKeyboard() {
    if (mKeyboardOpen) {
      InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
      imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
    }
  }
}

EditText((MainActivity) getActivity()).closeSoftKeyboard();OnClickListener(). _

ヒント: ViewPager ルート ビュー (R.id.pager) を使用していますが、おそらくビュー ルート ID に置き換える必要があります。

于 2013-10-23T07:40:25.193 に答える
0

マニフェスト ファイルで次のコードを使用します。

<activity
     android:name="YourActivity"
     android:configChanges="keyboardHidden"
     android:windowSoftInputMode="stateHidden"/>
于 2013-10-23T07:01:02.690 に答える