2014-02-13 5 views
0

У меня есть активность, где есть текст редактирования, но у меня проблема, потому что автоматически появляется виртуальная клавиатура.Android edittext и виртуальная клавиатура

Интересно, если это не так, что она автоматически не появляется, но только при нажатии на Edit Text

+0

вы осведомлены о ''? –

+0

Возможный дубликат [Как скрыть Soft Keyboard при запуске активности] (http://stackoverflow.com/questions/18977187/how-to-hide-soft-keyboard-when-activity-starts) –

+0

http: // разработчик. android.com/training/keyboard-input/visibility.html#ShowOnStart –

ответ

1

Вы можете использовать

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

в вашем Activity. Клавиатура будет открыта только при нажатии на нее

+0

спасибо, что это работает! – user3244162

+1

Добро пожаловать. – Apoorv

0

Просто добавьте в манифест для вашей деятельности: android:windowSoftInputMode="stateHidden". Например:

<activity 
    android:name="com.proj.activity.MainActivity" 
    android:windowSoftInputMode="stateHidden" /> 
0

Напишите следующий код в onResume() метод, то клавиатура не будет всплывающее окно автоматически ...

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

Попробуйте

private void showKeyboard(View view) { 
    InputMethodManager keyboard = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    keyboard.showSoftInput(view, 0); 
} 

private void hideKeyboard() { 
    InputMethodManager inputMethodManager = (InputMethodManager) this 
      .getSystemService(Context.INPUT_METHOD_SERVICE); 
    inputMethodManager.hideSoftInputFromWindow(this.getCurrentFocus() 
      .getWindowToken(), 0); 
} 
0

Вам нужно установите для параметра EditText ответ на событие изменения фокусировки и скройте клавиатуру вручную,

public class Activity1 extends Activity implements OnFocusChangeListener 
{ 
    protected void onCreate(Bundle b) 
    { 
     ..... 
     txtX = (EditText) findViewById(R.id.text_x); 
     txtX.setOnFocusChangeListener(this); 
    } 

    public void hideKeyboard(View view) 
    { 
     InputMethodManager inputMethodManager =(InputMethodManager)context.getSystemService(Activity.INPUT_METHOD_SERVICE); 
     inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0); 
    } 
    @Override 
    public void onFocusChange(View view, boolean arg1) 
    { 
     if(! view.hasFocus()) 
      hideKeyboard(view); 
    } 
} 

и в XML установить макет в фокусируемого

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:clickable="true" 
    android:focusableInTouchMode="true" > 

     <EditText 
      android:id="@+id/text_x" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 
</LinearLayout> 
Смежные вопросы