Android 对象中转换sqlite数据的问题
我正在学习在Android SQLite上打开工作。我想显示通过光标填充的微调器文本。使用时出现的问题:Android 对象中转换sqlite数据的问题,android,sqlite,cursor,Android,Sqlite,Cursor,我正在学习在Android SQLite上打开工作。我想显示通过光标填充的微调器文本。使用时出现的问题: nameOfSPinner.getSelectedItem().toString(); 它显示选定索引的编号,而不是数据 为了解决这个问题,我想我可以获取所有信息并将其存储在对象数组中,然后用这些信息填充微调器。有更好的方法吗 当我获取写入索引的内容并将其显示在对象中时,我的应用程序因NullPointerException崩溃。我觉得有些基本的面向对象编程我不懂,但我什么也看不到 pub
nameOfSPinner.getSelectedItem().toString();
它显示选定索引的编号,而不是数据
为了解决这个问题,我想我可以获取所有信息并将其存储在对象数组中,然后用这些信息填充微调器。有更好的方法吗
当我获取写入索引的内容并将其显示在对象中时,我的应用程序因NullPointerException崩溃。我觉得有些基本的面向对象编程我不懂,但我什么也看不到
public Objet[] getObjetDescription2(){
Cursor c = bdd.query("nom de la table", new String[] {"rowid _id", "description", "id"},null, null, null, null, null);
return nomFonction(c);
}
private Objet[] nomFonction(Cursor c){
//si aucun élément n'a été retourné dans la requête, on renvoie null
if (c.getCount() == 0)
return null;
//Sinom on se place sur le premier élément
c.moveToFirst();
int compteur = c.getCount();
Objet[] objet = new Objet[100];
int i = 0;
do{
//on lui affecte toutes les infos grâce aux infos contenues dans le Cursor
objet[i].setDescription(c.getString(2));
objet[i].setId(c.getInt(1));
i++;
}while(i >= compteur);
//On ferme le cursor
c.close();
return objet;
}
这将创建一个可容纳100个Objet实例的新阵列。它不创建任何Objet实例:所有插槽最初都为空
因此,您需要在循环中显式创建对象:
objet[i] = new Objet();
objet[i].setDescription(c.getString(2));
...
此外,您的循环结构既不寻常又不正确,请尝试在纸上用compteur==2模拟它。使用一个简单的for循环
for (i=0; i<compteur; i++) { ... }
你不能把光标移到任何地方。你需要打电话到下一个地方
for (i=0; i<compteur; i++) { ... }