Android 数据库搜索仅返回1个搜索结果
我制作了一个电影数据库应用程序,用户可以在其中搜索电影,然后在滚动视图中显示搜索结果。然而,每当我搜索一个字符串,该字符串将返回多部电影,如“the”,它将只返回它看到的第一个结果。知道为什么吗 主要活动:Android 数据库搜索仅返回1个搜索结果,android,sql,sqlite,search,android-studio,Android,Sql,Sqlite,Search,Android Studio,我制作了一个电影数据库应用程序,用户可以在其中搜索电影,然后在滚动视图中显示搜索结果。然而,每当我搜索一个字符串,该字符串将返回多部电影,如“the”,它将只返回它看到的第一个结果。知道为什么吗 主要活动: public void search(View v){ EditText search = (EditText)findViewById(R.id.edtSearch); String searchresult = "%" + search.getText().toStrin
public void search(View v){
EditText search = (EditText)findViewById(R.id.edtSearch);
String searchresult = "%" + search.getText().toString() + "%";
db = new DbHelper(this).getReadableDatabase();
String[] column = {"*"};
String where = "film LIKE ? OR actor LIKE ? OR actor2 LIKE ? OR director LIKE ?";
String[] selArgs = {searchresult, searchresult, searchresult, searchresult};
Cursor results = db.query("FILMTABLE", column, where, selArgs, null, null, null);
film(results);
}
public void film (Cursor c) {
c.moveToFirst();
int filmint = c.getColumnIndex("film");
int id = c.getColumnIndex("id");
String film = c.getString(filmint);
int filmID = c.getInt(id);
TextView txt = new TextView(getApplicationContext());
txt.setId(filmID);
txt.setText(film);
txt.setTextColor(Color.BLACK);
txt.setTextSize(16);
txt.setClickable(true);
txt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(), MainActivity4.class);
intent.putExtra(FILM_ID_KEY, String.valueOf(v.getId()));
startActivity(intent);
}
});
ScrollView scrollView = (ScrollView) findViewById(R.id.scrollView);
scrollView.addView(txt);
}
您需要使用游标对结果进行迭代
if (c.moveToFirst())
{
do {
// Get values here
} while (c.moveToNext());
}
c.close();
您仅获取一个数据…因为您仅从光标获取一个数据。您需要使用cursor.moveToNext()循环遍历它,以获取剩余的游标dat(如果有)。最后记得关闭光标。太好了,真不敢相信我没有看到这个。谢谢