android - 数据库搜索只返回 1 个搜索结果

标签 android sql sqlite search android-studio

我制作了一个电影数据库应用程序,用户可以在其中搜索电影,然后在 ScrollView 中显示搜索结果。但是,每当我搜索一个应该带回多部电影(如“the”)的字符串时,它只会返回它看到的第一个结果。知道为什么吗?

主要 Activity :

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();

关于android - 数据库搜索只返回 1 个搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29039217/

相关文章:

java - OpenGL ES 2.0 - 用纹理画线?

sqlite - 找不到 SDK SQLite.WP80 Xamarin 和 Azure 构建错误

sql - 在SQLite中选择具有最大/最小值的行

c# - 我可以在 ASP.NET 登录应用程序中使用 Sqlite 吗?

android - 我忘记了我的 keystore 密码,我想在 Google Play 上安装我的 apk。我该怎么办?

java - DatabaseException - 无法将 java.lang.String 类型的对象转换为 com.appmaster.akash.messageplus.Results 类型

php - 使用 php mysql 选择关注者帖子的最佳方法

mysql - 如何以mysql格式合并like&match sql查询?

sql - 查找表中的最小和最大数据列

android - 如果 Facebook Conceal 仅将 key 存储在 SharedPreferences 中,它如何保证安全?