Listview
データベースからのすべてのデータを表示しています。現在onTextChanged
、ユーザーが入力した文字列をフィルター処理するフィルター メソッドがあります。onResume()
アクティビティ クラスのメソッドをオーバーライドするまで、これは完全に機能します。ユーザーが戻るボタンをクリックしたときに、これを使用しonResume()
てリロードしました。Listview
説明なしで述べたように、onResume
それは完全に機能します。onResume() を使用すると、フィルターがブロックされます。
これが私のコードです:
public class view extends ListActivity {
ImageButton searchButton;
EditText searchName;
ListView searchedListResults;
long idToPass;
String numReturned;
String email;
@Override
protected void onResume() {
super.onResume();
list();
}
SimpleCursorAdapter cursorAdapter;
DBHandler getCons;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search);
searchedListResults = (ListView) findViewById(android.R.id.list);
list();
searchName = (EditText) findViewById(R.id.inputName);
searchedListResults.setTextFilterEnabled(true);
searchName.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
cursorAdapter.getFilter().filter(s.toString());
// list();
searchedListResults.refreshDrawableState();
}
});
getCons = new DBHandler(this, null, null);
cursorAdapter.setFilterQueryProvider(new FilterQueryProvider() {
public Cursor runQuery(CharSequence constraint) {
getCons.open();
return getCons.getChanges(constraint.toString());
}
});
searchedListResults.setAdapter(cursorAdapter);
}
private void list() {
DBHandler DBsearchRef = new DBHandler(this, null, null);
DBHandler search = new DBHandler(this, null, null);
search.open();
Cursor cursor = search.getData();
search.close();
startManagingCursor(cursor);
String[] from = new String[] { DBsearchRef.KEY_NAME,
DBsearchRef.KEY_TEL, DBsearchRef.KEY_EMAIL,
DBsearchRef.KEY_COMMENTS };
int[] to = new int[] { R.id.txtNameSet, R.id.txtContactSet,
R.id.txtEmailSet, R.id.txtCommentSet };
cursorAdapter = new SimpleCursorAdapter(this, R.layout.searchagain,
cursor, from, to);
searchedListResults.setAdapter(cursorAdapter);
}
}