アイテムのリストを含む ListView を作成しました。リスト ビューの各アイテムには、異なるイメージがありました。私が望むのは、リスト ビュー内の各画像をドラッグ アンド ドロップすることです。つまり、リスト ビュー内の項目の位置を移動できます。
私がやりたいことは次のとおりです。
リスト内の各画像をある位置から別の位置にドラッグ アンド ドロップできます。
リストビューの各画像をクリックすると、ダイアログが開きます。
では、どのようにそれを行うことができますか?適切な例を教えてください。
アイテムのリストを含む ListView を作成しました。リスト ビューの各アイテムには、異なるイメージがありました。私が望むのは、リスト ビュー内の各画像をドラッグ アンド ドロップすることです。つまり、リスト ビュー内の項目の位置を移動できます。
私がやりたいことは次のとおりです。
リスト内の各画像をある位置から別の位置にドラッグ アンド ドロップできます。
リストビューの各画像をクリックすると、ダイアログが開きます。
では、どのようにそれを行うことができますか?適切な例を教えてください。
Eric Harlow によるこの非常に単純な例を確認してください。
彼は使用した
private ArrayList<String> mContent; //in DragNDropAdapter class
Imagesを使用する必要があるため、パッケージ全体でカスタマイズします
private ArrayList<Image> mContent; //in DragNDropAdapter class
    下のDragNDropListViewのコードを見てください。
@Override
    public boolean onTouchEvent(MotionEvent ev) {
        final int action = ev.getAction();
        final int x = (int) ev.getX();
        final int y = (int) ev.getY();  
        if (action == MotionEvent.ACTION_DOWN && x < this.getWidth()/4) { 
            mDragMode = true;
        }
...
上記のコードの代わりに、これを使用して、リスト ビューの中央でのみドラッグ アンド ドロップを有効にします。
@Override
public boolean onTouchEvent(MotionEvent ev) {
    final int action = ev.getAction();
    final int x = (int) ev.getX();
    final int y = (int) ev.getY();
    int mWidth = this.getWidth() / 4;  //calculating the quarter part
    if (action == MotionEvent.ACTION_DOWN && x >= (mWidth * 2) && x < (mWidth * 3) ) {
        mDragMode = true;
    }
...
1) xの値が何であれ、ドラッグアンドドロップを有効にしたい場所のようにチェックする必要があります。
2) ユーザーに完全な特権を与えて、ユーザーが lsit アイテムの任意のポイントからドラッグできるようにするには、これを使用します
if (action == MotionEvent.ACTION_DOWN ) //don't check for x-position.
{
..
}
上記のコードを見てください。
これがあなたを助けることを願っています。
ちなみに@Anshumanいい質問です。