2015-12-03 82 views
0

我有一個編輯文本,當用戶點擊按鈕或軟鍵盤輸入後,我在後臺執行一些操作並重新開始此活動。第一次重點放在EditText上,但在重定向後焦點會丟失。EditText第二次失去焦點

還有一件事,我使用藍牙設備在EditText區域輸入文本。

在活動的開始,我收到EDITTEXT按鈕,並呼籲

edittext.setFocusableInTouchMode(true); 
edittext.requestFocus(); 

還呼籲採取行動後,我再次請求焦點。

在清單中,我使用:

android:windowSoftInputMode="stateAlwaysVisible" 

我也曾嘗試總是顯示鍵盤:

InputMethodManager mgr = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); 
mgr.showSoftInput(mLastNameET, InputMethodManager.SHOW_IMPLICIT); 

我已經嘗試了很多東西,請建議我怎樣才能使它發揮作用?

+0

重寫onresume()並將該焦點代碼放在該方法中也。 –

+0

onResume的活動?你能提供代碼片段嗎? – somaniA

回答

1

有兩種方法可以做到這一點,

首先是聲明EditText.request焦點()在簡歷(),或者第二個是申報<request focus />標籤<EditText> <request focus/> <\EditText> 之間也可以使用這個東西:

editText.setOnFocusChangeListener(new OnFocusChangeListener() { 
      @Override 
      public void onFocusChange(View v, boolean hasFocus) { 
       editText.post(new Runnable() { 
        @Override 
        public void run() { 
         InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); 
         imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT); 
        } 
       }); 
      } 
     }); 
     editText.requestFocus(); 
+0

覆蓋onResume不起作用。可能是什麼原因 – somaniA

+0

更新答案,可以試試這個也可以。 – androgo

+0

設置focusChangeListener工作。 – somaniA

0

我有類似的問題,並在下面的清單中添加android:windowSoftInputMode =「adjustPan」。 我希望它也適合你。

<activity 
     android:name=".MyActivity" 
     android:windowSoftInputMode="adjustPan"> 
    </activity> 
+0

謝謝,讓我試試 – somaniA

+0

歡迎,它是否工作? –

+0

它沒有工作 – somaniA