私はユーザーがリストから項目の順序を変更できるListPreferenceを探していました。アイテムはドラッグ可能で、ユーザーが並べ替えることができます。ドラッグ可能なアイテムでListViewを作成するには?
私はこれを私のカスタムROMで見ました(そして私はCyanogenmodでこれを見ました)。ここではスクリーンショットはを通じてアイデアを得るためにです:
私はカスタムリストビューのアイテムを作成し、アイテムをドラッグしていることを示すためにアイコンを設定する方法を知っているが、私は彼らがドラッグできるようにする方法がわかりませんそれに応じて順序を変更します。設定を保存する場合は、簡単に実装できるthisが見つかりました。
PS:私はCyanogenmodは、オープンソースである知っているが、私は、この特定のもののソースを見つけることができませんでした:(私は得ることができる最も近いどこか他のスクリーンの近くにあるべきthis、だった...
このことについてどんなヒントを事前に感謝
UPDATE:。私は追加や変更で、受け入れ答えからファイルを使用して終了し、私はさらに参考のためにここにリストしています
-
。
私のケースでは、カスタムアダプター(私の場合はArrayAdapter)を使用して、このアイテムがドラッグ可能であることの視覚的なフィードバックを実装します。これはTextView近くのImageViewです。これはオプションです。
DragListenerとRemoveListenerを設定すると、それに応じてリストが更新されます。 ListViewは自動的にそれを行いません。使用しているアダプタによって異なります。
ViewGroupにViewをキャストしたときにエラーが発生したため、問題なくキャストを削除しましたが、不要でした。 (onInterceptTouchEventメソッド内)。
mRemoveMode = 1;
をTouchInterceptorのコンストラクタに変更するか、またはを入力してください。私はTRASH
だと思うが、リソースも利用できるはずだ。
私は実際にはない答えのリンクからではなく、私はすでに持っていたCyanogenmod 1、からファイルを取ったが、私はこれらのファイルが同じであったと思います。
これらは(R12で、執筆時点で)プロジェクトの実際のファイルです:
- The Preference using this ListView
- The ListActivity with the listeners and the Adapter
- The actual ListView
私はそれが他の誰かの役に立てば幸い:)
これには標準機能はないので、onTouchをオーバーライドしてタッチイベントを検出する必要があります。オーバーライドはおそらくlongClickイベントによってアクティブ化されます。そうしないと、ユーザーがアイテムをドラッグするか、リストをスクロールするかどうかわかりません。 – Christine
@Christine [OnDragListener](http://developer.android.com/reference/android/view/View.OnDragListener.html)を使用できませんか? – jadkik94
@ jadkik94こんにちは。これらのファイルを使って同じことを実装しようとしています。しかし、それはかなり古い質問なので、私は良いかどうかというよりは、ドラッグ可能なリストを実装するためのより便利な方法が出てきたのかどうか疑問に思っていましたか?私は何も見つけることができませんでした。あなたが与えることができる任意のポインタを感謝します..ありがとう。 – Anjani