1

データベースsqliteからデータを取得するAndroidでnextとprevを実装する方法。以下の画像のようにしたい:

ここに画像の説明を入力

ボタンを右にクリックすると次の行/記事に移動し、ボタンを左にクリックすると前の行/記事に移動します。

もっとやらなければならないこと、ここまで来ました。これはリストビュー後の私の現在のクエリです。以下は、リストビューからアイテムをクリックしたときです。

クエリ:

public Cursor getAllCategoryItem() {
        SQLiteDatabase db = this.getWritableDatabase();
        String selectQuery = "SELECT  * FROM myarticle";
        Cursor cursor = db.rawQuery(selectQuery, null);
        return cursor;
}

活動中:

Cursor c = db.getAllCategoryItem();
int count = c.getCount();
int position = c.getPosition();
Log.d("MyLog", "Count: " + count + ", Position: " + position);

get in logcat is Count: 30, Position: -1;

メニューの前と横にボタンを配置しました:

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == R.id.next_article) {
            // what code in here ?
            return true;
        } else if (item.getItemId() == R.id.prev_article) {
            // what code in here ?
            return true;
        } else {
            return super.onOptionsItemSelected(item);
        }
    }

ありがとう。

4

2 に答える 2

0

2つの方法のいずれかでそれを行うことができます。

1)最初にDBからすべてのアイテムを順番に取得します。ArrayListに格納します。現在のアイテムが何であるかを追跡し、いずれかのボタンが押されたときに、インデックスを配列に1ずつ変更し、表示を更新します

2)WHERE句を使用して、今必要なアイテムのみを取得します。ユーザーがボタンをタップすると、WHERE句を介して新しいアイテムをリクエストします。新しいアイテムを表示します。

于 2013-02-11T04:42:04.233 に答える
0

クエリを使用して、Sqlite データベース内の特定の ID を介してトラバースできます。しかし、それは非常に退屈なようです。

だから、やることは一つ。アプリケーションの開始時に、カーソルを介してデータベースからすべてのデータを取得し、配列に格納します。次に、配列内をトラバースします。

于 2013-02-11T05:50:11.643 に答える