2011-08-11 8 views
0

私は、各項目の位置を並べ替えることができるアンドロイドリストビューを作成しました。しかし、私はどのように私はidの関数を表示して並べ替えを使用してデータベースからカーソルを取得することができるように最も効率的な方法でデータベースに格納されている '変更された'位置を把握することができないのですか?データベース内のリストビューの表示位置を格納しています

誰かがこれで私を助けることができますか?ありがとう。

UPDATE:

現在、私がの考えていることは、それが作成されると、最後の項目の位置としてデータベース内の項目の位置を格納することで、それが変更された場合、その後、私はの位置を変更しますデータベース内の選択されたアイテムを削除し、ループを実行して、その下にある他のすべてのアイテムを1ずつ増やします。

この論理は意味がありますか?

答えて

0

データベースに列ordinal(integer型)を作成して、アイテムをリストに表示する順序を格納することができます。ユーザーがリストを並べ替えると、それに応じて序数が変更されます。

EDIT:

あなたの更新を読んだ後、私は、ユーザーがアップデート1以下何かの位置を変更したらどうので、それが動作するとは思わないのですか?

ListViewの位置に応じて各アイテムの位置を更新するだけではどうですか?

だからあなたのデータベースのいずれかの方法は次のようになります。

public boolean updateOrdinal(int itemId, int ordinal) 

{ 

    ContentValues c = new ContentValues(); 


    c.put("ordinal", ordinal); 


    return db.update("TableName", c, kID + "=" + itemId, null) > 0; 

} 

ユーザーがリストを「節約」の後にこれが呼び出されます。もちろん、ループは各項目に対してこれを呼び出さなければなりません。

+0

ご返信ありがとうございます。私はそれの位置の位置を示す列を持っています。私は私の質問を更新しました、多分あなたはそれを見ることができます。 –

+0

これまでにコードを投稿できますか? – Jack

+0

私はまだデータベースの移動のための多くのコードがありません。私はまだそれを行う適切な方法を考えています。しかし、私はポジションを私に供給するリスナーを持っています。 –

関連する問題