如果记录存在,我想将 SQLite 数据库值添加到 ListView,但我只从 EditText 获取文本。
这就是我正在做的
来自databaseHelper类的代码
public String ifExistIn(String stationName) {
String query = "SELECT stationName FROM review WHERE stationId='" + stationName + "' LIMIT 1";
try {
SQLiteDatabase database = getReadableDatabase();
Cursor c = database.rawQuery(query, null));
return stationName;
}
}
来自 Activity 类的代码
public View.OnClickListener searchStation = new View.OnClickListener() {
@Override
public void onClick(View v) {
DatabaseHelper dbHelper = new DatabaseHelper(getApplicationContext());
String searchString= searchText.getText().toString();
dbHelper.ifExistIn(searchString);
list.add(searchString);
arrayAdapter= new ArrayAdapter<String>(SearchAndReview.this, android.R.layout.simple_list_item_1, list);
listView.setAdapter(arrayAdapter);
}
};
最佳答案
这里可能有一些错误,但据我所知,你可以尝试这个:
public String ifExistIn(String stationName) {
String query = "SELECT stationName FROM review WHERE stationId='" + stationName + "' LIMIT 1";
SQLiteDatabase database = getReadableDatabase();
Cursor c = database.rawQuery(query, null);
c.moveToFirst();
return c.getString(c.getColumnIndex("stationName"));
}
您必须获取光标的结果并解释它,然后将其返回为String stationName
。
还有这个:
public View.OnClickListener searchStation = new View.OnClickListener() {
@Override
public void onClick(View v) {
DatabaseHelper dbHelper = new DatabaseHelper(getApplicationContext());
String searchString= searchText.getText().toString();
String usethis = dbHelper.ifExistIn(searchString);
list.add(usethis);
arrayAdapter= new ArrayAdapter<String>(SearchAndReview.this, android.R.layout.simple_list_item_1, list);
listView.setAdapter(arrayAdapter);
}
};
您将获取 searchString
并将其放入列表中,但不对查询结果执行任何操作。您需要将查询结果分配到某处然后使用它。或者实际上直接在插入中使用它,例如:
list.add(dbHelper.ifExistsIn(searchString);
关于java - 将 SQLite 数据库值添加到 ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29564827/