问题描述
- Android 查询功能使用一个 EditText 中的字符串
-
Android 中的搜索功能在程序中可以执行。我使用onSearchRequested();
来调用搜索功能
现在我不想使用onSearchRequested();
把一个字符串从一个 EditText 传递到 search 方法中,并把结果显示在list中。
当调用onSearchRequested时,search 方法可以运行。SearchPage Activity:
DBHelper = new DBAdapter(this); DBHelper.open(); Intent intent = getIntent(); if (Intent.ACTION_SEARCH.equals(intent.getAction())) { String query = intent.getStringExtra(SearchManager.QUERY); showResults(query); } private void showResults(String query) { Cursor cursor = DBHelper.searchDB(query); startManagingCursor(cursor); String[] searchFrom = new String[] { DBAdapter.KEY_YEAR, DBAdapter.KEY_MAKE, DBAdapter.KEY_MODEL }; int[] displayHere = new int[] { R.id.rYearTV, R.id.rMakeTV, R.id.rModelTV }; final SimpleCursorAdapter records = new SimpleCursorAdapter(this, R.layout.record_2, cursor, searchFrom, displayHere); setListAdapter(records);
DBAdapter Activity:
//--- 从 search 中获得 records public Cursor searchDB(String query) { String[] parts = query.split(" "); String queryString = ""; for(int i = 0; i < parts.length; i++) { queryString += KEY_YEAR + " LIKE '%" + parts[i] + "%' OR "; queryString += KEY_MAKE + " LIKE '%" + parts[i] + "%' OR "; queryString += KEY_MODEL + " LIKE '%" + parts[i] + "%'"; if(i != (parts.length - 1)) { queryString += " OR "; } } return db.query(true, DB_TABLE, new String[] { KEY_ROWID, KEY_SDATE, KEY_YEAR, KEY_MAKE, KEY_MODEL }, queryString, null, null, null, null, null); } //--- 从 Search 中获取 Records
我想传递一个字符串到 search 函数
String searchData = searchEditText.getText().toString();
,点击 "Search"按钮,search 函数可以正常运行。如何开始?
时间: 2024-12-23 04:02:25