これは間違いなく達成でき、幸運なことに、ほとんどの作業はすでに処理されていますが、仕様に合わせてクラスを少し変更する必要があります。
デフォルトの Android ミュージック アプリには、必要なクラスがすべて含まれています。
ListView
まず、ドラッグ アンド ドロップを可能にするカスタムを取得する必要があります。
それはここにあります - TouchInterceptor.java。
Cursor
でアイテムを実際に移動するために使用されるカスタムも取得する必要がありますListView
。という内部クラスNowPlayingCursor
です。
それはここにあります - TrackBrowserActivity.java
NowPlayingCursor
extendsAbstractCursor
であり、キューを返すために使用されます。メソッドmakeNowPlayingCursor()
は、特に、独自のコードのほとんどを記述する場所です。キューを返す代わりに、移動したいアイテムを返す必要があります。
を使用するにはTouchInterceptor
、 を実装する必要がありますTouchInterceptor.DropListener
。
private TouchInterceptor.DropListener mDropListener =
new TouchInterceptor.DropListener() {
public void drop(int from, int to) {
final NowPlayingCursor mNowPlayingCursor = (NowPlayingCursor) YOUR_CURSOR;
mNowPlayingCursor.moveItem(from, to);
// Call `notifyDataSetChanged` here.
}
};
moveQueueItem
また、アイテムをあるインデックスから別のインデックスに移動するために使用される方法も確認する必要があります。このメソッドは、NowPlayingCursor
whenonMove
およびmoveItem
are が呼び出されるときに使用されます。
それはここにあります - MediaPlaybackService.java
したがって、あなたの側でいくつかの作業を行う必要がありますが、これは間違いなく可能です。