2012-05-23 30 views
1

我創建了一個包含項目列表的ListView。列表視圖中的每個項目都有不同的圖像。我想要的是拖放列表視圖中的每個圖像意味着我可以移動列表視圖中的項目的位置。在列表視圖中拖動項目時的問題

我想要做的事情是。

  1. 我可以拖放列表中的每個圖像從一個位置到另一個位置。

  2. 單擊列表視圖上的每個圖像我想打開一個對話框。

那麼如何做到這一點。請用適當的例子來幫助我。

回答

0

看一下下面的代碼定製它在整個包

@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順便問個好問題。

+0

的任何一點拖動它是可能的在長按一個圖像視圖,我已經在listItem中使用...如果是這樣怎麼做... – AndroidDev

0

查看this Eric Harlow給出的非常簡單的例子。

他用

private ArrayList<String> mContent; //in DragNDropAdapter class 

當你需要使用圖片,在DragNDropListView

private ArrayList<Image> mContent; //in DragNDropAdapter class 
+0

是的,我通過應用程序,它的工程很好。但是我失去了點擊和滾動的能力。如何保留這兩個?我一直在想,拖放應該發生在長時間按下該項目,而不是正常的新聞。 – AndroidDev

+0

當你點擊icmpmove.png(區域)時,只有它開始拖放N-drop。 – Prashant

+0

是的,我知道但是如果我用戶想從一個ListItem的中間位置拖動它...所以我們必須給予用戶一個完整的特權,以便他們可以從lsit項目 – AndroidDev