2014-09-18 3 views
4

У меня есть EditText, где я хочу сам обрабатывать входные данные, поэтому я не хочу, чтобы клавиатура отображалась, когда я нажимаю на нее (или когда изменения выбора, изменение фокуса, длительное нажатие, и т.д). Тем не менее, я по-прежнему хочу выбрать текст, изменить положение курсора, скопировать/прошлое и т. Д.Отключить мягкую клавиатуру для Edittext

Я попытался поставить андроид: windowSoftInputMode = "stateAlwaysHidden" в манифесте, но это, похоже, не делает , Я также попытался добавить следующее:

edittext.setOnTouchListener(new OnTouchListener() { 
    @Override public boolean onTouch(View v, MotionEvent event) { 
     EditText edittext = (EditText) v; 
     int inType = edittext.getInputType();  // Backup the input type 
     edittext.setInputType(InputType.TYPE_NULL); // Disable standard keyboard 
     edittext.onTouchEvent(event);    // Call native handler 
     edittext.setInputType(inType);    // Restore input type 
     return true; // Consume touch event 
    } 
}); 

который отключает клавиатуру, а также не позволяет курсору работать.

В настоящее время я в основном пытаюсь добавить слушателей для всех ситуаций, когда клавиатура может появиться, чтобы переключить ее, но это очень неуклюже, и я не могу поймать все случаи. Есть ли лучший способ отключить мягкую клавиатуру для конкретного EditText или фрагмента?

+1

Если вы сами обрабатываете входные данные, почему бы не просто «TextView»? Вы можете сделать это по выбору, которое, я думаю, даст вам то, чего вы хотите. – draksia

+0

make editText unselected on touch – Barun

+1

Я также хочу, чтобы мигающий курсор из EditText, и хотел бы, чтобы он работал с аппаратной клавиатурой и другими методами ввода. –

ответ

0

Попробуйте этот код.

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // Disable IME for this application 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM, 
       WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); 

     setContentView(R.layout.activity_layout); 
+0

Я пробовал, и он, похоже, не работает –

Смежные вопросы