得意犹堪夸世俗,诏黄新湿字如鸦。这篇文章主要讲述可能尚未为Cursor android初始化局部变量相关的知识,希望能为你提供帮助。
我正在使用Cursor根据食物名称(paramString1)和食物组(paramString 2)从数据库中获取数据。食物名称来自用户输入。
但是发现的错误很少。
The local variable localCursor may not have been initialized.
在while(true)循环之后,每个localCursor都会发生此错误。最后2行中的arrayofString [i]也会发生同样的错误。
我的搜索食物方法代码
public Cursor searchFoods(String paramString1, String paramString2)
{
Cursor localCursor;
String str1 = paramString1.replace("'", "").replace("/", "").replace("\", "").replace("%", "").replace(">
", "").replace("<
", "").replace(";
", "").replace(":", "").replace("?", "");
String str2 = "";
String[] arrayOfString2;
int i1;
int i3;
int i;
int j;
String[] arrayOfString1;
if (str1.contains(" "))
{
arrayOfString2 = str1.split(" ");
i1 = 0;
int i2 = arrayOfString2.length;
i3 = 0;
if (i3 >
= i2)
{
if (paramString2.length() >
0)
str2 = str2 + " AND FdGrp_Cd='" + paramString2 + "' ";
localCursor = db.rawQuery("SELECT _id, FdGrp_Cd, Long_Desc, NDB_No FROM FOOD_DES WHERE " + str2 + " ORDER BY FdGrp_Cd='0900' DESC, FdGrp_Cd='1100' DESC, FdGrp_Cd='0500' DESC,FdGrp_Cd='0100' DESC,FdGrp_Cd='1500' DESC,FdGrp_Cd='1300' DESC,FdGrp_Cd='1700' DESC, Long_Desc ASC LIMIT 300;
", null);
i = 0;
j = localCursor.getColumnIndex("Long_Desc");
arrayOfString1 = new String[localCursor.getCount()];
localCursor.moveToFirst();
}}
while (true)
{if (localCursor.isAfterLast())
{
return localCursor;
String str4 = arrayOfString2[i3];
if (str4.length() >
1)
{
String str5 = str4.substring(-1 + str4.length(), str4.length());
if ((str5.toLowerCase().equals(str5)) &
&
(str5.toLowerCase().equals("s")))
str4 = str4.substring(0, -1 + str4.length());
}
if (i1 + 1 <
arrayOfString2.length);
for (str2 = str2 + " Long_Desc LIKE '%" + str4 + "%' AND ";
;
str2 = str2 + " Long_Desc LIKE '%" + str4 + "%' ")
{
i1++;
i3++;
}
if (str1.length() >
1)
{
int k = -1 + str1.length();
int m = str1.length();
String str3 = str1.substring(k, m);
if ((str3.toLowerCase().equals(str3)) &
&
(str3.toLowerCase().equals("s")))
{
int n = -1 + str1.length();
str1 = str1.substring(0, n);
}
}
str2 = " Long_Desc LIKE '%" + str1 + "%'";
}
arrayOfString1[i] = localCursor.getString(j);
i++;
localCursor.moveToNext();
}
}
感谢您的关注。
答案【可能尚未为Cursor android初始化局部变量】因为localCursor和arrayOfString1可能为null,所以您没有这些变量的默认值
推荐阅读
- sql android忽略重复检索内容
- Android(无法从CursorWindow读取第0行,第3列。在从中访问数据之前,请确保正确初始化Cursor)
- 如何在android中使用游标(sqlite查询)搜索数据库
- 在Glassfish 5.0中部署ADF WEbapp时出错
- 如何为Electron / Atom Shell App设置应用程序图标
- 我在哪里可以找到Android的默认图标( [重复])
- 如何在android studio中更改图标颜色
- Android Studio编译旧图标
- Android(Button drawable Top)