0

我得到了存储一些信息的 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);

在我的数据库中插入后,我使用select语句,它也可以完美运行。

    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 也保留在那里。

在此处输入图像描述

4

1 回答 1

0

如果我理解得很好,你不想在屏幕上有重复的值,对吗?为避免这种情况,您可能有一个空数组,并且在您想要添加值(touchlistener)之前,您可以添加 if 语句.. 像这样的东西:

if (!array.contains(value)) {
   array.add(value);
}

只要它们没有相同的数字,这将继续添加文本视图..

于 2013-03-01T15:01:03.967 回答