2012-11-15 87 views
0

我有一個文本視圖獲得鍵盤焦點的活動。Android - 如何檢查textview當前是否顯示鍵盤輸入

我將一個ontouchlistener設置爲父視圖;如果點擊超出了textview的範圍,我使用隱藏我的textview;

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

我唯一的問題是,如果鍵盤不顯示和父被點擊,它不斷這兩行,最終導致無用的交易(我喜歡儘可能多的處理保存爲可以發射了.. )

我一直在嘗試使用一些TextView的方法,如hasfocus或isfocused等,但我不能完全似乎找到一個只有關閉觸發文本視圖,使鍵盤秀...

有誰知道如果這甚至是可能的?

的若跌破語句是我想提出的方法的地方..

public boolean onTouch(View v, MotionEvent event) { 
     if (event.getAction() == MotionEvent.ACTION_DOWN) { 
      if (textView.*SOME METHOD HERE*?) { 
       Log.e(TAG, "LOSING FOCUS"); 
       InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); 
       imm.hideSoftInputFromWindow(textView.getWindowToken(), 0); 
      } 
     } 
        return true; 
    } 

感謝

回答

-1

檢查配置。無論鍵盤是否熄滅,keyboardHidden值都會保留。這將工作,除非有一個面部鍵盤(認爲黑莓風格)。如果這些很重要,則需要一些更復雜的邏輯,包括鍵盤字段和hardKeyboardHidden字段。

相關問題