以下情况:
我的布局上有一些ImageView
s。用户可以拖动它们。我还有一个按钮来添加一些新的ImageView
。单击它时,您将获得一个可以选择图像的概述。然后概述活动结束,然后返回到片段。
现在出现问题:
因为从其他活动返回时Fragment
会再次初始化,所以我之前放置的ImageView
的所有位置都会丢失。
什么是保存拖动ImageView
s位置的最佳方法?得到每个的边缘并保存它们?
我有一个SQLite数据库正在运行,但我认为保存每个ImageView
的位置是一种过度的做法。
答案 0 :(得分:0)
问题是,即使重启,您还希望自己的应用记住这些位置吗?
如果这样做,您需要使用某种持久性存储,例如数据库,File
或SharedPreferences
。
如果没有,只需将它们缓存在内存中,例如HashMap
。
要获得这些职位,您可以在OnDragListener
:
public boolean onDrag(View v, DragEvent event) {
final int action = event.getAction();
switch(action) {
// ...
case DragEvent.ACTION_DROP:
float x = event.getX;
float y = event.getY;
savePosition(x, y);
break;
}
}