ユーザーがリストからアイテムの順序を変更できる ListPreference を探していました。アイテムはドラッグ可能で、ユーザーが並べ替えることができます。
これは、QuickPanel のカスタム ROM で見ました (Cyanogenmod で見たことはほぼ確実です)。アイデアを理解するためのスクリーンショットを次に示します。
カスタム ListView 項目を作成し、項目がドラッグ可能であることを示すアイコンを設定する方法は知っていますが、それらをドラッグ可能にする方法とそれに応じて順序を変更する方法はわかりません。それらを設定に保存することに関しては、これを簡単に実装できることがわかりました。
PS:Cyanogenmodがオープンソースであることは知っていますが、この特定のもののソースを見つけることができませんでした:(私が得ることができた最も近いものはこれでした。これは他の画面の近くにあるはずです...
これについてのヒントを事前にありがとう。
更新:私は、追加と変更を加えて、受け入れられた回答のファイルを使用することになりました。さらに参照するために、ここにそれらをリストします。
カスタム アダプター (私の場合は ArrayAdapter) を使用して、このアイテムがドラッグ可能であるという視覚的なフィードバックを実装します。これは、TextView の近くの ImageView です。これはオプションです。
それに応じてリストを更新するには、DragListener と RemoveListener を設定します。ListView はそれを自動的に行いません。また、使用しているアダプタによって異なります。
View を ViewGroup にキャストする行があり、エラーが発生したため、問題なくキャストを削除しました。必要ありませんでした。(onInterceptTouchEvent メソッド内)。
TouchInterceptor
mRemoveMode = 1;
のコンストラクター、または次のいずれかを変更しますFLING = 0; SLIDE = 1; TRASH = 2;
。の場合TRASH
、リソースも利用できるはずです。
実際には、回答のリンクからではなく、既に持っていた Cyanogenmod からファイルを取得しましたが、これらのファイルは同じだったと思います。
これらはプロジェクト内の実際のファイルです (執筆時点では r12):
私はそれが他の誰かを助けることを願っています:)