2014-07-15 304 views
0

我使用EditText並具有onEditorActionListener和TextChangedListener。我想要做的是當文本被改變時搜索朋友,甚至當按下輸入時搜索朋友。 但問題是這只是我每當我在EditText中輸入文本它會自動隱藏鍵盤。我想避免這種情況。我怎麼能這樣做?避免隱藏軟鍵盤

這裏是我在做什麼

searchET.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
     @Override 
     public boolean onEditorAction(TextView v, int actionId, 
       KeyEvent event) { 
      if ((event.getAction() == KeyEvent.ACTION_DOWN) && (actionId == KeyEvent.KEYCODE_ENTER)) { 
       searchFriendList(searchET.getText().toString()); 
       return true; 
      } 
      return false; 
     } 
    }); 

    searchET.addTextChangedListener(new TextWatcher() { 


     @Override 
     public void onTextChanged(CharSequence s, int start, int before, 
       int count) { // TODO Auto-generated method stub 
      if (s.length() > 0) 
       searchFriendList(searchET.getText().toString()); 
     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { // TODO Auto-generated method stub 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 

     } 
    }); 

任何幫助,將不勝感激。

+0

點擊EditText上最好應不關閉軟鍵盤。所以你必須這樣做,儘管是無意的。 請發佈所有與searchET相關的代碼。另外,請在您的代碼中查找焦點。他們可能是罪魁禍首 –

回答

2

添加機器人:windowSoftInputMode =「stateAlwaysVisible」你的活動在AndroidManifest.xml文件:

<activity android:name=".MainActivity" 
android:label="@string/app_name" 
android:windowSoftInputMode="stateAlwaysVisible" /> 

在我的測試應用程序這顯示了應用程序的啓動鍵盤雖然是不固定的,但有可以通過按下後退按鈕來解除。

要確保鍵盤始終可見,您可能必須創建自己的鍵盤作爲應用程序的一部分。可能使用Android鍵盤從Android來源:https://android.googlesource.com/platform/packages/inputmethods/LatinIME

另外這裏有一個目前的討論,但沒有一個完整的解決方案:http://groups.google.com/group/android-developers/browse_thread/thread/17210d784766602d

+0

@Dude,然後試試這個,它會工作... – Laxmeena

+0

Thanx @Rajeev Arora它的工作 – Dude

3

要顯示軟鍵盤做到這一點:

//Import this 
import android.view.inputmethod.InputMethodManager; 

//Create object 
private InputMethodManager imm; 

imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 

imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_IMPLICIT_ONLY); 
+0

是什麼導致鍵盤隱藏在我的代碼? – Dude

0

使用該屬性爲您的EditText:

android:imeOptions="actionNone" 

它會始終保持你的原生鍵盤打開/可見。