0

基本的に、現在指している位置ではなく、データベース内の実際の値を返したいと考えています。これを読んでみると、getString メソッドは私が必要としているもののようですが、それは機能していないようです。コードは次のとおりです。

public Cursor fetchNote(long rowId) throws SQLException {

    Cursor mCursor =

        mDb.query(true, DATABASE_TABLE, new String[] {KEY_TITLE}, KEY_ROWID + "=" + rowId, null,
                null, null, null, null);
    if (mCursor != null) {
        mCursor.moveToFirst();

    }

    return mCursor;

これが私の非常に標準的なクエリで、結果 (つまり、mCursor の位置) を取得する必要があります。その値が「Fred」であるとしましょう。アプリケーションでそれを表示したいと思います。これは私の活動にあるコードです:

TextView currentName = (TextView) findViewById(R.id.currentName);
        String me = myDatabaseHelper.fetchNote(1).toString();
        currentName.setText(me);

これを実行して、このリスナーを持つボタンをクリックすると、android.database.sqlite.SQLiteCursor@44f78c00期待どおりに次のように表示されますが、くそったれ値を表示することはできません。クエリに組み込む必要があると思いmCursor.getString(mCursor.getColumnIndex("title"));ますが、現時点では mCursor 値を返しています。インデックスを返すために構築する必要がある別のメソッドはありますか? それが怪しげに説明されている場合は申し訳ありませんが、私はちょっと混乱しています!

より多くのコード/詳細情報が必要な場合は、お知らせください。これを手伝ってくれる人に事前に感謝します。

4

2 に答える 2

0
mCursor.getString("title");

タイトルをカーソルで返す必要があります。

インデックスが必要な場合mCursor.getColumnIndex("title") は、十分なはずです。

于 2012-01-23T20:09:26.847 に答える
0

カーソルは、情報を含むデータ構造全体です。クエリを実行し、カーソルをロードしたと仮定すると、カーソル関数の 1 つを使用して現在の行を出力する必要があります。

カーソル全体で toString() を実行すると、表示される出力が表示されます。

私がオンラインで見た例では、return mCursor と言っているのを見ません...彼らは単に return; と言っています。

また、次のことを試してください。

mCursor.getString(mCursor.getColumnIndex("title"));
于 2012-01-23T20:02:55.020 に答える