2014-09-18 261 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