2012-11-10 171 views
3

我正在爲Android編寫一個計算器,用於輸入表達式我使用EditText。當我創建我的按鈕 - 我不需要軟件鍵盤,但我想更改光標位置,文本選擇,複製,粘貼。總而言之 - 一切都如此,只有虛擬鍵盤不會顯示。 在2.3版本我可以這樣寫:在Android 4中的EditText中輸入時隱藏軟鍵盤

EditText.setInputType (InputType.TYPE_NULL); 

它完美地工作。在遊標的版本4中不顯示,菜單不起作用,等等。嘗試了很多方法 - 你不能移動光標,顯示鍵盤,它從來沒有真正解釋過。

InputMethodManager imm = (InputMethodManager)getSystemService(
    Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); //cursor not showing 
------------------------------------------------------------------------ 
getWindow().setSoftInputMode(
    WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); //not working 

我想使它在Panecal,MobiCalc免費,科學計算器。我會很高興與此有關的任何有用的建議。 P.S.對不起我的英語不好。

回答

2

從下面發佈的鏈接,這裏是消耗在觸摸一個例子的EDITTEXT

editText_input_field.setOnTouchListener(otl); 

private OnTouchListener otl = new OnTouchListener() { 
    public boolean onTouch (View v, MotionEvent event) { 
      return true; // the listener has consumed the event 
    } 
}; 

下面是來自同一網站的另一個例子。這要求工作,但似乎是一個糟糕的主意,因爲你的編輯框爲空,將不再編輯:

MyEditor.setOnTouchListener(new OnTouchListener(){ 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     int inType = MyEditor.getInputType(); // backup the input type 
     MyEditor.setInputType(InputType.TYPE_NULL); // disable soft input 
     MyEditor.onTouchEvent(event); // call native handler 
     MyEditor.setInputType(inType); // restore input type 
     return true; // consume touch even 
    } 
}); 

希望這點你在正確的方向

以上回答是摘自 - how to block virtual keyboard while clicking on edittext in android?

這可能工作太 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

+0

被隱藏,光標閃爍,BU我不能移動它;第二種情況相同,但在表達式開始處設置遊標;第三種情況絕對沒有效果。感謝您嘗試幫助。 – user1814546

+0

如果你谷歌如何停止軟盤鍵盤上來,你會得到更多的結果 – jcw

+0

我Google很多次,沒有人工作。 – user1814546

0

這個確切的解決方案是通過在EditText上設置標誌textIsSelectableTRU e。這將保留光標,你就可以利用基本的選擇/複製/剪切/粘貼等functions.You可以將它設置在你的XML佈局是這樣的:

您可以通過編程設置是這樣的:

EditText edit_text = (EditText) findViewById(R.id.editText); 
edit_text.setTextIsSelectable(true); 

或者在你的XML佈局:

<EditText 
    ... 
    android:textIsSelectable="true" 
/> 

對於使用API​​ 10及以下,黑客在這裏提供的任何一個:在第一種情況下鍵盤https://stackoverflow.com/a/20173020/7550472

相關問題