我正在面臨問題,同時過濾列表。我正在使用onTextChange()方法。它工作正常,但問題是,因爲我在編輯中鍵入單個字符文本軟鍵盤獲取消失並且我必須再次點擊編輯文本才能輸入完整的字符串。我也已經完成了代碼,以便軟鍵盤在文本更改後不會消失,但仍然需要點擊編輯文本。以下是我的代碼:在列表視圖過濾不能正常工作
search.addTextChangedListener(new TextWatcher() {
@ Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
String startwith = s.toString();
ArrayList <Myshares> filterList = new ArrayList <Myshares>();
for (int i = 0; i < fileList.size(); i++) {
if (fileList.get(i).getName().toLowerCase().startsWith(startwith) || fileList.get(i).getName().toUpperCase().startsWith(startwith)) {
filterList.add(fileList.get(i));
}
}
adapter = new MListAdapter(PlayListActivity.this, filterList);
playListView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
@
Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@
Override
public void afterTextChanged(Editable s) {
search.setSelection(search.getText().length());
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(search, InputMethodManager.SHOW_IMPLICIT);
}
});
這裏是編輯的文字我的XML代碼:
<EditText
android:ems="10"
android:id="@+id/search_bar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="5dp"
android:layout_weight="2"
android:background="@drawable/searchbox"
android:editable="true"
android:focusable="true"
android:inputType="textFilter"
android:hint="Search"
android:keepScreenOn="true"
android:paddingLeft="10dp"
android:textSize="15dp" />
我還在列表視圖中設置了android:focusable =「false」屬性,以便它不重疊軟鍵盤。但與編輯文本的問題還是一樣。這裏是截圖
當我插入一個字符列表得到過濾器和光標從編輯文本框消失了。
http://chat.stackoverflow.com/rooms/1278/android-discussion – 2013-05-17 07:07:33
你可以閱讀我的答案從[這裏](http://stackoverflow.com/questions/16536663/how-to-add-search -function-on-list-view-items-in-listview-are-from-baseadap/16536801#16536801)關於這個問題我希望這會有所幫助 – 2013-05-14 13:09:09