2014-09-18 135 views
4

我有我想要的处理输入自己一个EditText,所以我不想软键盘显示出来,当我点击它(或当选择的变化,重点变成,长点击,等等)。但我仍然希望能够选择文本,更改光标位置,复制/过去等。禁用软键盘为EDITTEXT

我试图在清单中放置android: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 2014-09-18 18:22:25

+0

使EDITTEXT未选择的触摸 – Barun 2014-09-18 18:51:35

+1

我也想从EditText上闪烁的光标,并想将其与硬件键盘等多种输入方式工作。 – 2014-09-19 13:27:46

回答

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

我尝试过了,它不似乎工作 – 2014-09-19 13:25:31