2014-05-22 99 views
0

我想要從列表項中獲取列表項的位置。請建議我們如何做到這一點。 我試圖得到如下:我想從列表項中獲取列表項位置

public boolean onTouch(View view, MotionEvent motionEvent) { 

     if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) { 
      DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view); 
      int adapterIndex = listView.pointToPosition((int) motionEvent.getX(),(int) motionEvent.getY()); 
      int firstViewItemIndex = listView.getFirstVisiblePosition(); 
      int viewIndex = adapterIndex - firstViewItemIndex; 
      pos = listView.pointToPosition((int) motionEvent.getX(), (int) motionEvent.getY()); 
      pos=pos-listView.getFirstVisiblePosition(); 
      view.startDrag(null, shadowBuilder, view, 0); 
      return true; 
     } 
} 

但總是得到0

回答

0

在您的適配器類的positiongetView(int position, View convertView, ViewGroup parent) { ..方法是當前的觸摸列表項目的位置。

1

嘗試以下計算策略:通過setTag(適配器觀點

集列表中的項目位置),並從onTouch方法你可以得到由view.getTag()方法的項目位置。

+0

工程像魅力... thanx很多。它節省了我的時間 –

1

試試:

MyListView.setOnItemClickListener(new ListView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> a, View v, int position, long l) { 

      //action for position, for example one toast and show value of var "position" 

     } 
    }); 
1

ListView.getPositionForView(View view)是你的方法。 ;-)