2013-03-01 4 views
0

나는 몇 가지 정보를 저장 sqlite 데이터베이스를 가지고있어. 안드로이드 중복 Textview를 제거

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()); 
    } 

생각이 거의 내 프로젝트를 완료 갱신 문 내 업데이트 문이 잘 작동 (상대 레이아웃에서) 다른 곳에서

I 터치 Texview 경우 다시

및 dragg하지만, 오래된 Texview도 거기 남아 있습니다. 내가 잘 이해하면

enter image description here

답변

0

중복 값을 화면 오른쪽을 가지고 싶지 않아? textviews를 계속 추가 할 경우 한 그들이하지 않는

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

이 : 당신은 빈 배열을 가질 수 당신이 값 (touchlistener)를 추가 할 전에 ... if 문 같은 것을 추가 할 수있는 피하려면 같은 번호를 가지고 ..

+0

응답 주셔서 감사합니다, 절대적으로 맞습니다,하지만 ... 내가 쿼리에서 그것을 업데이 트하면 이전 텍스트보기도 어떻게 늙은 위치에 있었는지 이해할 수 없습니까? 어떻게 오래된 것을 제거 할 수 있습니까? 감사합니다 ... – coreprojectz

+0

다음과 같이 오래된 것을 지울 수 있습니다 : yourlayout.removeView (TX); –