我一直在查找如何从SQLite数据库中的整个列中检索数据的不同解决方案,但我似乎无法得到正确的答案。其他人的大多数解决方案都给了我一个nullPointerExecption。我还是SQLite相关领域的初学者,所以我对语法仍然有点困惑。我已经尝试隔离光标中的单个列,然后让光标移动到每一行,但这并没有很好的解决。我还尝试将列数据放在游标中,然后将信息传输到int数组中,但这也没有用。我正在尝试:
public Cursor fetchATopic(String column, String column2) {
return db.rawQuery("SELECT "+column+", "+column2+" FROM "+TABLE_NAME,null);
}
我的数据库类中的方法是:
handler=new DataHandler(getBaseContext());
Cursor c = handler.fetchATopic("EXACTHOURS","EXACTMINUTES");
int exactHour=0;
int exactMinute=0;
if (c != null)
{
if (c.moveToFirst())
{
do
{
exactHour = c.getInt(c.getColumnIndex("exactHours"));
exactMinute = c.getInt(c.getColumnIndex("exactMinutes"));
textView.setText(textView.getText()+exactHours+exactMinutes);
} while (c.moveToNext());
}
}
这是我的主要课程。主要技术上的代码应该将textView更改成一堆乱七八糟的数字,因为它只是将一堆整数加在一起,但是这甚至不会发生,因为我在行上得到了nullPointerException: / p>
Cursor c = handler.fetchATopic("EXACTHOURS","EXACTMINUTES");
这让我相信我的数据库中的方法存在问题,但同样,我认为我的代码是正确的,但显然我做错了。
以下是我表格中的列:
public static final String EXACTHOURS="exactHours";
public static final String EXACTMINUTES="exactMinutes";
表格创建:
public static final String TABLE_CREATE="create table mytable(priority INTEGER not null,"
+ "leastHours INTEGER not null,leastMinutes INTEGER not null,exactHours INTEGER not null"
+ ",exactMinutes INTEGER not null,setHours INTEGER not null,setMinutes INTEGER not null"
+ ",setAmPm text not null,activityName text not null);";
logcat的:
07-31 19:56:15.316: E/AndroidRuntime(14793): FATAL EXCEPTION: main
07-31 19:56:15.316: E/AndroidRuntime(14793): java.lang.IllegalStateException: Could not execute method of the activity
07-31 19:56:15.316: E/AndroidRuntime(14793): at android.view.View$1.onClick(View.java:3704)
07-31 19:56:15.316: E/AndroidRuntime(14793): at android.view.View.performClick(View.java:4231)
07-31 19:56:15.316: E/AndroidRuntime(14793): at android.view.View$PerformClick.run(View.java:17385)
07-31 19:56:15.316: E/AndroidRuntime(14793): at android.os.Handler.handleCallback(Handler.java:615)
07-31 19:56:15.316: E/AndroidRuntime(14793): at android.os.Handler.dispatchMessage(Handler.java:92)
07-31 19:56:15.316: E/AndroidRuntime(14793): at android.os.Looper.loop(Looper.java:137)
07-31 19:56:15.316: E/AndroidRuntime(14793): at android.app.ActivityThread.main(ActivityThread.java:4953)
07-31 19:56:15.316: E/AndroidRuntime(14793): at java.lang.reflect.Method.invokeNative(Native Method)
07-31 19:56:15.316: E/AndroidRuntime(14793): at java.lang.reflect.Method.invoke(Method.java:511)
07-31 19:56:15.316: E/AndroidRuntime(14793): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
07-31 19:56:15.316: E/AndroidRuntime(14793): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
07-31 19:56:15.316: E/AndroidRuntime(14793): at dalvik.system.NativeStart.main(Native Method)
07-31 19:56:15.316: E/AndroidRuntime(14793): Caused by: java.lang.reflect.InvocationTargetException
07-31 19:56:15.316: E/AndroidRuntime(14793): at java.lang.reflect.Method.invokeNative(Native Method)
07-31 19:56:15.316: E/AndroidRuntime(14793): at java.lang.reflect.Method.invoke(Method.java:511)
07-31 19:56:15.316: E/AndroidRuntime(14793): at android.view.View$1.onClick(View.java:3699)
07-31 19:56:15.316: E/AndroidRuntime(14793): ... 11 more
07-31 19:56:15.316: E/AndroidRuntime(14793): Caused by: java.lang.NullPointerException
07-31 19:56:15.316: E/AndroidRuntime(14793): at com.example.daymanager.DataHandler.fetchATopic(DataHandler.java:125)
07-31 19:56:15.316: E/AndroidRuntime(14793): at com.example.daymanager.DayTimeline.StartDay(DayTimeline.java:178)
07-31 19:56:15.316: E/AndroidRuntime(14793): ... 14 more
如果能给我一个关于如何创建这种方法的全新示例,那么请发布它。