0

私は Sqlite を使用し、Android アプリケーションで実行します。

私はこのようなコードを持っています:

//get ALL Data
public Cursor getAll() throws SQLException
{
    Cursor mCursor = mDb.query(DATABASE_TABLE, null, null, null, null, null, null);
    if(mCursor != null)
    {
        mCursor.moveToFirst();
    }
    else if(mCursor.isNull(0))
    {
        Log.d("data", "null");
    }
    return mCursor;
}

値がnullの場合、アプリケーションは>_<などを強制的に閉じます。値がnullの場合、ログを出力したい??

どなたか私の悩みを解決してください??

4

3 に答える 3

2

ifこれらのブロックをネストしたいと思います:

...
if (mCursor != null)
{
     mCursor.moveToFirst();

     if (mCursor.isNull(0))
     {
         Log.d("data", "null");
     }
}
return mCursor;

コード内のelse ifブロックは、mCursornull の場合にのみ実行されました。その場合mCursor.isNull(0)、例外がスローされます。

于 2012-10-09T15:45:15.060 に答える
0

カーソルが移動するかどうかを確認する必要があります

if (cursorinfo.moveToFirst())
{
if value then show data here.
}
else
{
Log here
}
于 2012-10-09T15:43:06.947 に答える
0

nullポインタでisNullを呼び出そうとしています。ifステートメントは、mCursorオブジェクトがnullでない限り、isNullを呼び出すことを意味します。これにより、NullPointerExceptionがスローされ、クラッシュが発生します。elseの後にifを削除してみてください。mCursorがnullの場合、「null」をログに記録します。

于 2012-10-09T15:43:06.727 に答える