2012-03-23 57 views
3

我用我自己的鍵盤做了一個應用程序,我想徹底禁用android默認virtaul鍵盤。如何禁用EditText的鍵盤和光標功能..?

我tryed這一點:

myEditText.setOnClickListener(new OnClickListener() 
     { 
      public void onClick(View v) 
      { 
       InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
       imm.hideSoftInputFromWindow(keresetEditText.getWindowToken(), 0); 

      } 
     }); 

據工作檸良好,但無意中我剛剛發現一個錯誤,真正的錯誤我到地獄:

當我滑下我的手指上的EditText的軟鍵盤剛出現! 所以得出的結論是:onClickListener只是在我滑動時不運行,而不是點擊。

我嘗試onTouchListener,但它沒有工作! 任何提示如何完全禁用虛擬鍵盤?我不需要它在整個應用程序。

其他的事情: 我可以做的其他問題StackOverflow的,但我認爲它的邏輯在這裏這樣: 當我在EditText上的光標點擊,我可以在我的EditText中的文本移動它,但我不希望它像這樣啓用。我可以禁用遊標可移動性嗎?所以我需要閃爍的光標,但完全處於停留位置。

回答

4

這裏有一些解決方案爲您提供:

  • ,如果你將永遠不會需要softkeyboard上顯示該活動,你可以設置在明顯

  • android:windowSoftInputMode="stateAlwaysHidden"屬性禁用編輯文本。您不會有閃爍的光標(或任何光標),但使用禁用的編輯文本打開軟鍵盤是不可能的,但仍然可以在代碼中設置自己的文本

  • 只需使用TextView,而設置爲背景android.R.drawable.edit_text。它看起來像一個EditText,而只是一個只讀的TextView,仍然允許你從代碼設置任何值。再次,您仍然沒有閃爍的光標

  • 將EditText的可聚焦和可點擊的屬性設置爲false。編輯文本將永遠不會獲得焦點,因此永遠不會導致軟鍵盤顯示

  • (這是一個黑客)在編輯文本上放置了一個不可見的按鈕,因此點擊edittext實際上會被按鈕攔截沒有。編輯文本仍然可以使用軌跡球或方向鍵進行調焦,並且您仍然不會有閃爍的光標

+0

您是問題的主人,我將使用第四個選項謝謝! – 2012-03-23 14:47:45

+0

謝謝 - 在搜索一個小時的stackoverflow後,我終於找到了你的解決方案。我也使用了第四種選擇!謝謝! – Simon 2014-10-28 17:28:46