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 に答える