私はAndroidとstackoverflowにかなり新しいです。これが私の最初の問題です...私があなたを助けてくれることを願っています。Android、SQL:既存の列に値があるかどうかを調べるにはどうすればよいですか?
id、category ....、stepsのような列を持つsqlite dbに基づいて、アプリケーションを作成する必要があります。ステップの列は1から16まであり、step1からstep16という名前ですが、すべての項目にすべてのステップが入っているわけではありません。 最初のレコードにはstep1〜step6のみがいくつかの文字列値で埋められ、2番目のレコードにはstep1〜step10などが含まれます。 今、私は実際にそれに値を持っている最大のステップを見つけることを試みる...、それは常に私はすでに私がここで立ち往生しています現時点では、物事の多くを試してみました
12-20 15:45:41.038: DEBUG/AndroidRuntime(1243): Shutting down VM
12-20 15:45:41.038: WARN/dalvikvm(1243): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
12-20 15:45:41.044: ERROR/AndroidRuntime(1243): FATAL EXCEPTION: main
12-20 15:45:41.044: ERROR/AndroidRuntime(1243): java.lang.RuntimeException: Unable to start activity ComponentInfo{de.lochmann.zaubertricks/de.lochmann.zaubertricks.TrickExplanation}: java.lang.NullPointerException: println needs a message
でクラッシュ:
public int getMaxSteps(int id) {
int step=1;
String query="SELECT step"+Integer.toString(step)+" FROM "+DB_NAME+" WHERE _id="+id;
Cursor myCursor = myDataBase.rawQuery(query,null);
while(myCursor.moveToFirst()) {
if (myCursor.getString(0)!=null) {
step++;
query="SELECT step"+Integer.toString(step)+" FROM "+DB_NAME+" WHERE _id="+id;
myCursor = myDataBase.rawQuery(query,null);
}
}
return step;
}
基本的に私はstep + xという名前の列を探しています。存在していて空でない場合は、ステップを増やしてもう一度開始します。動作しますが、myCursor.getString(0)!= nullでは停止しません。私も試しにキャッチブロックを置くが、役に立たない。 私が探していることを達成するための提案や他の方法はありますか?これは、との最後のセルであるとして
ID Name Description Step1 Step2 Step3 Step4 Step5 Step6 Step7 ... Step16
1 Test Foo test test test test test test - -
とgetMaxSteps(1)の方法は、我々の場合で6を返す必要があります。だから、レコードは次のようになります
...私はいくつかの基本的な原理を逃すチャンスです価値。
そして、ログに記録されている未知の例外は何でしょうか?
p.s:データベース設計が非常に悪いことは分かっていますが、それは私のものではありません。
かなり長い最初のポスト、私はあなたが私を助けることができると思います:)
挨拶マーティン
を助けましたか?もしそうなら、それを受け入れてください。ありがとう。 – Gray