我创建了一个包含项目列表的 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 好问题。