通过拖放传递数据的完整证明方式是什么?
在我的情况下,我有两个列表,我可以将元素从一个拖到另一个。因此,我们从中拖动的列表已经有与之关联的数据。根据我的搜索,通常的方法是通过视图 setTag() 和 getTag() 方法存储数据。这也是我会做的,但由于两个列表都使用视图持有者模式,实际数据将存储在持有者中。然后将持有者设置为视图标签。但是我也听说你永远不应该将数据存储在视图或持有者中(我在列表适配器中使用视图持有者模式)。
那么将数据从一个列表传递到另一个列表的最佳方式是什么?
通过拖放传递数据的完整证明方式是什么?
在我的情况下,我有两个列表,我可以将元素从一个拖到另一个。因此,我们从中拖动的列表已经有与之关联的数据。根据我的搜索,通常的方法是通过视图 setTag() 和 getTag() 方法存储数据。这也是我会做的,但由于两个列表都使用视图持有者模式,实际数据将存储在持有者中。然后将持有者设置为视图标签。但是我也听说你永远不应该将数据存储在视图或持有者中(我在列表适配器中使用视图持有者模式)。
那么将数据从一个列表传递到另一个列表的最佳方式是什么?
尝试将数据存储在根活动或片段中:
public class MyActivity extends Activity
{
private ListView list1;
private ListView list2;
private int dragPosition;
...
protected class myDragEventListener implements View.OnDragListener {
// This is the method that the system calls when it dispatches a drag event to the
// listener.
public boolean onDrag(View v, DragEvent event) {
// Defines a variable to store the action type for the incoming event
final int action = event.getAction();
// Handles each of the expected events
switch(action)
{
case DragEvent.ACTION_DRAG_STARTED:
// save the position in one list
dragPosition = somePosition;
return true;
case DragEvent.ACTION_DROP:
//do what you want with other list
return true;
}
}
}
也许,这会有所帮助。