【发布时间】:2020-05-24 20:28:42
【问题描述】:
我想将屏幕上的视图移动到触摸的任何位置。我写了一些代码,视图正在移动,但我无法在保存按钮上的 sharedPrefs 中保存位置。所以请帮我保存我在其他活动中使用的视图位置。
我使用我在所有保存值中使用的自定义创建的 SharedPref 文件。
savebutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPref.setValue(EditView.this,"View_X",dX);
SharedPref.setValue(EditView.this,"View_Y",dY);
}
});
@Override
public boolean onTouch(View view, MotionEvent event) {
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
dX = view.getX() - event.getRawX();
dY = view.getY() - event.getRawY();
lastAction = MotionEvent.ACTION_DOWN;
break;
case MotionEvent.ACTION_MOVE:
view.setY(event.getRawY() + dY);
view.setX(event.getRawX() + dX);
lastAction = MotionEvent.ACTION_MOVE;
break;
case MotionEvent.ACTION_UP:
if (lastAction == MotionEvent.ACTION_DOWN)
Toast.makeText(EditWatermark.this, "Clicked!", Toast.LENGTH_SHORT).show();
break;
default:
return false;
}
return true;
}
其他活动
View view;
float savedX, savedY;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit);
view = findViewById(R.id.View);
savedX = SharedPref.getFloat(this,"View_X");
savedY = SharedPref.getFloat(this,"View_Y");
view.setX(savedX);
view.setY(savedY);
}
在这种情况下,当移动视图并保存值...然后转到其他活动并检查视图位置..然后我得到该视图是不可见的。
.....对不起我的英语不好......
【问题讨论】:
-
嗨,Akash,您可以将代码发布到您尝试保存数据的位置吗?
-
@Slipoch 问题正在更新,你可以试试..
标签: java android position sharedpreferences ontouch