1

私のアプリケーションは、ユーザーが要素を追加できるボタン付きの ListView を表示します。ユーザーがこのボタンをクリックすると、別のアクティビティが開始され、ユーザーが新しい要素を設定できるようになります。追加が完了したら、ListView を使用して前のアクティビティに戻り、新しい要素までスクロールしたいと思います。データベースからデータを取得するときに「順序」があるため、この要素は必ずしも ListView の最後にあるとは限りません。

ListView をスクロールするには、新しい要素のカーソル位置が必要であることはわかっていますが、この要素に関する唯一の情報はその ID です。この ID をカーソル位置に変換するにはどうすればよいですか? 位置を見つけるためにカーソルをループする必要がありますか?

前もって感謝します

4

1 に答える 1

2

私がこの権利を持っていれば、あなたのアクティビティは新しい要素を返し、データベースからすべてのエントリを再度フェッチし、あなたが持っている唯一の情報は要素のIDです。これがシナリオである場合、唯一のオプションは、アダプター内のすべての要素を反復し、正しい要素を見つけることだと思います。しかし、この場合は ArrayAdapter を使用する方がよいかもしれません。2 番目のアクティビティが新しい ID を返したら、それらのみを db から取得し、アダプターに追加します。挿入ソートを実装することで add(T) メソッドをオーバーライドできるため、アダプターがソートされ、新しく挿入された要素のインデックスを保存してから、この位置までスクロールすることができます。

于 2010-05-07T18:18:48.253 に答える