Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Can';t在警报对话框中将数据从sqlite提取到微调器_Android_Database_Sqlite_Spinner_Android Spinner - Fatal编程技术网

Android Can';t在警报对话框中将数据从sqlite提取到微调器

Android Can';t在警报对话框中将数据从sqlite提取到微调器,android,database,sqlite,spinner,android-spinner,Android,Database,Sqlite,Spinner,Android Spinner,我希望有人能帮我找出为什么下面的代码不适合我。我有一个从数据库表中获取所有名称的方法,我使用List来获取它们。这是我取它们的代码 /*fetch all names to spinner*/ public List<String> readAllNames() { List<String> names = new ArrayList<String>(); String[] allNames = {SQLiteHelper.Names};

我希望有人能帮我找出为什么下面的代码不适合我。我有一个从数据库表中获取所有名称的方法,我使用List来获取它们。这是我取它们的代码

/*fetch all names to spinner*/
public List<String> readAllNames()
{
    List<String> names = new ArrayList<String>();
    String[] allNames = {SQLiteHelper.Names};
    String selection = SQLiteHelper.Names + " LIKE ?";
    String[] selectionArgs = null;
    cursor = database.query(SQLiteHelper.LECTURE_NAME, allNames, selection, selectionArgs, null, null, null);

    cursor.moveToFirst();
    while(!cursor.isAfterLast())
    {
        names.add(cursor.getString(cursor.getColumnIndex(SQLiteHelper.Names)));
        cursor.moveToNext();
    }
    cursor.close();
    return names;
}
/*将所有名称提取到微调器*/
公共列表readAllNames()
{
列表名称=新的ArrayList();
字符串[]allNames={SQLiteHelper.Names};
字符串选择=SQLiteHelper.Names+“LIKE?”;
字符串[]selectionArgs=null;
cursor=database.query(SQLiteHelper.u名称、allNames、selection、selectionArgs、null、null);
cursor.moveToFirst();
而(!cursor.isAfterLast())
{
add(cursor.getString(cursor.getColumnIndex(SQLiteHelper.names));
cursor.moveToNext();
}
cursor.close();
返回姓名;
}
这是我调用该方法并填充微调器的代码

datasource.openToRead();
    List<String> names = datasource.readAllNames();
    ArrayAdapter<String> spin = new ArrayAdapter<String>(Home.this, android.R.layout.simple_spinner_item, names);
    spin.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    ins_jadname.setAdapter(spin);
    datasource.close();
datasource.openToRead();
List name=datasource.readAllNames();
ArrayAdapter spin=新的ArrayAdapter(Home.this、android.R.layout.simple\u spinner\u项、名称);
spin.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
ins_jadname.setAdapter(旋转);
datasource.close();
问题是微调器是空的,每个人都知道我的代码有什么问题吗?我不想使用简单的游标适配器,因为我认为它更简单。
无论如何,谢谢。

如果要从数据库中获取所有名称,无需在
readAllNames()
方法中使用
LIKE
selection子句,只需从目标sqlite表的所有行的name列中获取数据即可。守则是:

cursor = database.query(SQLiteHelper.LECTURE_NAME, allNames, null, null, null, null, null);

查询数据库后,您是否测试了名称列表是否有任何值?还没有,我如何检查它?只需使用
Log
行:
Log.e(“查找我”,“列表大小为”+names.size())
(在
readAllNames()
方法中关闭
光标后插入它。然后查看日志以查看列表的大小。结果是0,你知道如何修复我的代码吗?谢谢@Luksprog我已经解决了这个问题,我使用了rawQuery方法来查询我的数据。