2013-11-03 132 views
0

OK我有一個EditTexts數組,我想循環它們,所以如果一些EditText不包含文本,我想要求用戶輸入,並且我通過很多時間和大量的閱讀,但我不明白這應該如何工作。這麼幾個問題:EditText,焦點,軟鍵盤麻煩

requestfocus()是否足夠? (它不工作 - 鍵盤不顯示)

我已經嘗試使用OnFocusChangeListener並試圖顯示鍵盤(showSoftInput(view,InputMethodManager.SHOW_IMPLICIT))如果有editText焦點再次它不工作。

有沒有人知道有什麼好的例子讓我走出這個三角形?

回答

1

view.requestFocus()是不夠的;

我使用這個代碼:

public static void setSoftwareKeyboardVisibility(Context context, View view, boolean value) { 
     final InputMethodManager manager = (InputMethodManager) context.getSystemService(Service.INPUT_METHOD_SERVICE); 
     if (value) { 
      view.requestFocus(); 
      manager.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT); 
     } else { 
      // Any other not EditText View 
      manager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.RESULT_UNCHANGED_SHOWN); 
      view.requestFocus(); 
     } 
    } 

但是你說standatr方法是行不通的。嘗試撥打showSoftInput不在OnFocusChange方法。在將焦點設置爲EditText時調用它。

+0

感謝您的回覆,但仍然關注editText,但鍵盤僅在我觸摸控件後才顯示:( –

+0

@AdnanPirota,hmmmm。您是否在清單中爲您的活動更改'windowSoftInputMode'?什麼是值? – nfirex

0

我現在不能找到那裏我得到了解決我的問題的頁面,但解決的辦法如下:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); 
0

隨着editText.requestFocus()其中EDITTEXT是你的EditText查看你的光標集中到外地。

如果您想在對焦後顯示鍵盤,請查看raukodraug here的答案。