我有sqlite数据库,我存储了一些信息。
ID NUMBER posX posY
1 232342 235 346
2 345.4353 344 123
3 23 124 157
我创建了拖放onTouchlistener并且它完美地工作,如您所见,它将一些信息存储在数据库中。
DragEvent.ACTION_DRAG_LOCATION:
mCurX = (int) event.getX();
mCurY = (int) event.getY();
DragEvent.ACTION_DROP
final String sql = "INSERT or REPLACE INTO number_dash (numbers, X, Y) VALUES ('"+Dropped.getText()+ "', '"+ mCurX+ "', '"+ mCurY + "')";
db.execSQL(sql);
在我的数据库中插入后,我使用选择语句,它也可以完美运行。
Cursor newQuery = db.query("number_dash",null, null, null, null, null, null,null);
if (newQuery.moveToFirst()) {
do {
int ID = Integer.parseInt(newQuery.getString(0));
String number = newQuery.getString(1);
float X = Integer.parseInt(newQuery.getString(2)) - 40;
float Y = Integer.parseInt(newQuery.getString(3)) - 40;
TX = new TextView(MainActivity.this);
TX.setOnTouchListener(new ChoiceTouchListener());
TX.setText(number);
TX.setId(ID);
TX.setX(X);
TX.setY(Y);
TX.setTextColor(Color.parseColor("#FFFFFF"));
} while (newQuery.moveToNext());
}
当我写 更新声明
时,我认为我的项目差不多完成了如果我再次触摸Texview并在另一个地方拖动(在相对布局),我的更新声明效果很好,但旧的Texview也会停留在那里。
答案 0 :(得分:0)
如果我理解得很好,你不希望屏幕上有重复的值吗?为了避免你有一个空数组,在你想要添加值之前(touchlistener)你可以添加if语句..这样的事情:
if (!array.contains(value)) {
array.add(value);
}
只要它们没有相同的数字,这将继续添加文本视图..