2011-09-04 277 views
0

這裏的情況:我顯示的屏幕有4個輸入字段,其中2個需要用戶(數字字段),其他(文本字段)編輯 - 顯示一些文本信息,用戶可以通過ListView更改,但它關閉以進行手動編輯。 我在我的XML文件android:editable="false"中使用非數字EditText字段,它有助於在用戶點擊字段時禁用軟鍵盤彈出。但問題出在用戶編輯數字字段時,軟鍵盤不能在用戶關注文本字段後隱藏。如何在軟鍵盤顯示時隱藏EditText軟鍵盤?

那麼當用戶關注我的文本字段時,如何隱藏已經顯示的軟鍵盤?

的方法,如:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(MEdit1.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 

或像這樣

MetricEdit = (EditText) findViewById(R.id.MetricEdit); 
MetricEdit.setInputType(0); 

採取任何影響。

提前感謝您的時間。

回答

2

嘗試把

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(MEdit1.getWindowToken(), 0); 

在onclicklistener爲可編輯

,你還可以改變數字的EditText的鍵盤有一個「做」在底部用以下的EditText:

android:imeOptions="actionDone" 

in the xml for edittext

+0

凱文感謝您的想法,但這段代碼沒有解決問題。當用戶選擇其他文本字段時,我仍然需要自動隱藏軟鍵盤。 – Dimon

+0

在每個edittext onclicklisteners中,您可以爲每個其他edittext執行hidesoftinputfromwindow行,以便所有可能的鍵盤都將被關閉,除了剛剛打開的鍵盤。這個對我有用。 –

+0

哦,現在終於有效了。這是我注意力不集中的地方,我在onCreate void這些行的開始處發佈了這些消息,但是在我將onClickListener替換爲每個EditText後,一切正常。謝謝凱文。 – Dimon

0

這將他lp ..

edittext.setInputType(InputType.TYPE_NULL);  
if (android.os.Build.VERSION.SDK_INT >= 11) 
{ 
    edittext.setRawInputType(InputType.TYPE_CLASS_TEXT); 
    edittext.setTextIsSelectable(true); 
} 
+0

好的,sdk_int <11?此解決方案僅適用於11和更高版本? – Dimon

+0

否....第一行'edittext.setInputType(InputType.TYPE_NULL);'是爲11以下的SDK .....但如果你運行在Sdk 11和以上的應用程序,如果條件將接管.....所以它將在任何地方完美工作.. !! ...它會隱藏鍵盤但不會隱藏光標... – ASP