検索可能な連絡先の種類のアプリを作成します。以下は私のコードです
public class EmployeeList extends Activity {
protected EditText searchText;
protected SQLiteDatabase db;
protected Cursor cursor, listcursor;
protected ListAdapter adapter;
protected ListView employeeList;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
db = (new DatabaseHelper(this)).getWritableDatabase();
searchText = (EditText) findViewById (R.id.searchText);
employeeList = (ListView) findViewById (R.id.list);
listcursor = db.rawQuery("SELECT * FROM employee",null);
adapter = new SimpleCursorAdapter(
this,
R.layout.employee_list_item,
listcursor,
new String[] {"firstName", "lastName", "title"},
new int[] {R.id.firstName, R.id.lastName, R.id.title});
employeeList.setAdapter(adapter);
}
public void search(View view) {
// || is the concatenation operation in SQLite
cursor = db.rawQuery("SELECT _id, firstName, lastName, title FROM employee WHERE firstName || ' ' || lastName LIKE ?",
new String[]{"%" + searchText.getText().toString() + "%"});
adapter = new SimpleCursorAdapter(
this,
R.layout.employee_list_item,
cursor,
new String[] {"firstName", "lastName", "title"},
new int[] {R.id.firstName, R.id.lastName, R.id.title});
employeeList.setAdapter(adapter);
}
}
問題は、編集テキストから単語をクリアした後です。前のリストビューに戻る必要があります。つまり、データベース内のすべての値が表示されます。