我已经设置了我的SQLiteOpenHelper类,所有工作都可以检索sqLite数据库中的所有数据。我现在想要将一个参数从mainActivity传递到我的SQLiteOpenHelper类中以查找某些记录。用户将在字段中输入搜索条件,我想传递该用户条目以进行搜索。目前我已经硬编码搜索类别161但这是我希望能够使用用户传递的参数。我在下面放了我的SQLiteOpenerHelper代码和mainActivty代码。我已经尝试将参数传递给mainActivity文件中的getAllUsers(),但Android不接受参数。有人可以帮我向我展示我需要做什么来将我需要的参数传递给sqLite查询
SQLiteOpenHelper类
public ArrayList<HashMap<String, String>> getAllUsers() {
ArrayList<HashMap<String, String>> usersList;
usersList = new ArrayList<HashMap<String, String>>();
String[] columns = {"id", "company", "firstname", "lastname", "category"};
SQLiteDatabase database = this.getWritableDatabase();
Cursor cursor = database.query("members", columns, "category = 161", null, null, null, "company");
if (cursor.moveToFirst()) {
do {
HashMap<String, String> map = new HashMap<String, String>();
map.put("id", cursor.getString(0));
map.put("company", cursor.getString(1));
map.put("firstname", cursor.getString(2));
map.put("lastname", cursor.getString(3));
map.put("category", cursor.getString(4));
usersList.add(map);
} while (cursor.moveToNext());
}
database.close();
return usersList;
}
mainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Get User records from SQLite DB
ArrayList<HashMap<String, String>> userList = controller.getAllUsers();
答案 0 :(得分:0)
我在这里看不到问题。只需将方法定义为:
public ArrayList < HashMap< String, String >> getAllUsers(int category){
//
}
然后使用"category = 161"
作为查询中的第三个参数而不是"category = " + category
。
从主要活动中将其称为:
ArrayList < HashMap< String , String>> userList = controller.getAllUsers(161);