2 つの値を比較しようとしています。1 つはデータベース内にあり、もう 1 つはデータベース クラスのクエリを含むメソッドに渡されます。実行しようとすると、アプリがクラッシュします。
データを送信するコード:
projectdatabase db = new projectdatabase(this);
String gotid = db.getProjectName(id);
クエリを実行したデータベース クラスのメソッドのコード:
public String getProjectName(String id) {
String[] columns = new String[] {PROJECT_NAME,KEY_ROWID};
Cursor c = projectDatabase.query(DATABASE_TABLE, columns, KEY_ROWID + "=" + id, null, null, null, null);
String result = "";
int iID = c.getColumnIndex(PROJECT_ID);
for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
result = result + c.getString(iID);
}
return result;
}
where句に何かありますか?
編集:
Arash の回答の後に実装されたコード:
public String getProjectName(String id) {
String[] columns = new String[] {PROJECT_NAME,KEY_ROWID};
Cursor c = projectDatabase.query(DATABASE_TABLE, columns, KEY_ROWID + "=" + id, null, null, null, null);
String result = "";
if(c.moveToFirst())
{
int iName = c.getColumnIndex(PROJECT_NAME);
for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
result = result + c.getString(iName);
}
}
return result;
}
丸太の猫:
12-31 15:25:15.193: W/dalvikvm(2134): threadid=1: thread exiting with uncaught
exception (group=0x409c01f8)
12-31 15:25:15.257: I/dalvikvm(2134): threadid=3: reacting to signal 3
12-31 15:25:15.355: E/AndroidRuntime(2134): FATAL EXCEPTION: main
12-31 15:25:15.355: E/AndroidRuntime(2134): java.lang.RuntimeException: Unable to start
activity ComponentInfo{com.kk.project/com.kk.project.ViewProjectDetails}:
java.lang.NullPointerException
12-31 15:25:15.355: E/AndroidRuntime(2134): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
12-31 15:25:15.355: E/AndroidRuntime(2134): at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
12-31 15:25:15.355: E/AndroidRuntime(2134): at
android.app.ActivityThread.access$600(ActivityThread.java:123)
12-31 15:25:15.355: E/AndroidRuntime(2134): at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
12-31 15:25:15.355: E/AndroidRuntime(2134): at
android.os.Handler.dispatchMessage(Handler.java:99)
12-31 15:25:15.355: E/AndroidRuntime(2134): at
android.os.Looper.loop(Looper.java:137)
12-31 15:25:15.355: E/AndroidRuntime(2134): at
android.app.ActivityThread.main(ActivityThread.java:4424)
12-31 15:25:15.355: E/AndroidRuntime(2134): at
java.lang.reflect.Method.invokeNative(Native Method)
12-31 15:25:15.355: E/AndroidRuntime(2134): at
java.lang.reflect.Method.invoke(Method.java:511)
12-31 15:25:15.355: E/AndroidRuntime(2134): at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
12-31 15:25:15.355: E/AndroidRuntime(2134): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
12-31 15:25:15.355: E/AndroidRuntime(2134): at
dalvik.system.NativeStart.main(Native Method)
12-31 15:25:15.355: E/AndroidRuntime(2134): Caused by: java.lang.NullPointerException
12-31 15:25:15.355: E/AndroidRuntime(2134): at
com.kk.project.projectdatabase.getProjectName(projectdatabase.java:123)
12-31 15:25:15.355: E/AndroidRuntime(2134): at
com.kk.project.ViewProjectDetails.onCreate(ViewProjectDetails.java:19)
12-31 15:25:15.355: E/AndroidRuntime(2134): at
android.app.Activity.performCreate(Activity.java:4465)
12-31 15:25:15.355: E/AndroidRuntime(2134): at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
12-31 15:25:15.355: E/AndroidRuntime(2134): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
12-31 15:25:15.355: E/AndroidRuntime(2134): ... 11 もっと見る