Как запретить системную программную клавиатуру? - PullRequest
0 голосов
/ 06 марта 2012

Я пишу код, чтобы запретить системную программную клавиатуру. Эффект может быть достигнут, но он исчезнет после одной вспышки. Мне не нужна эта вспышка. Это мой код.

public class MainActivity extends Activity {

private EditText mEditText;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mEditText = (EditText) findViewById(R.id.test_et);
    mEditText.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
                 hideSoftInputMode((EditText)v);
        }
    });

}

private void hideSoftInputMode(EditText editText) {
    ((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE))
            .hideSoftInputFromWindow(editText.getWindowToken(),
                    InputMethodManager.HIDE_NOT_ALWAYS);
}

}

Ответы [ 2 ]

3 голосов
/ 06 марта 2012

В вашем файле манифеста вы можете установить windowSoftInputMode на stateAlwaysHidden:

<activity
    ...other attributes
    android:windowSoftInputMode="stateAlwaysHidden">
</activity>
1 голос
/ 06 марта 2012

Есть и другой способ - не фокусироваться на вашем EditText.Установите его на вид на фоне (макет) или что-то.Это можно сделать с помощью:

setFocusable(true);
requestFocus();

Это должно помочь вам, не работая с Манифестом и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...