如果记录存在,我想将SQLite数据库值添加到ListView,但我只是从EditText获取文本。
这就是我正在做的事情
databaseHelper Class中的代码
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;
}
}
活动类的代码
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);
}
};
答案 0 :(得分:0)
像这样改变你的方法:
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 c.getString(c.getColumnIndex("columnName"));
}
}
您需要从光标对象中提取数据。现在你返回的是你传递的相同值。
答案 1 :(得分:0)
这里可能有一些错误,但从我所看到的你可以尝试这个:
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"));
}
您必须获取Cursor的结果并解释它然后将其返回为AS 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);