삭제

2012-04-03 7 views
1

질문삭제


나는 내 데이터베이스에 대한 첫 번째 항목을 삭제 버튼을 사용하려합니다.

public void delete(View view) 
{ 
    datasource.open(); 
    datasource.deleteTitle(0); 
    datasource.close(); 
} 

삭제 방법이있다 -이 : 설치 내가 코드 권리가 있다고 생각하지만, 삭제 버튼이 안드로이드를 누를 때 데이터 중 하나를 삭제하지 않는 것 그것은 onClick 방법으로하는이 있도록이다 호출 방법은 다음과 같습니다. -

다른 방법이 있습니까?

이 버튼은 다음과 같이 설정 : -

<Button 
     android:id="@+id/delete" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Delete First" 
     android:onClick="delete"/> 

것은 나는 내가 원하는 방법에 갈 onClick 내장 사용하고 있습니다. 나는이 응용 프로그램의 다른 부분에서 이것을 사용하고 있으며 정상적으로 작동합니다.

해결 방법 : 허용 대답에서


, 나는 그의 코드를 가져다가 먼저 삭제 DatabaseHelper 클래스 이름에 전화를 만들었습니다.

public void deleteFirst() 
{ 
    Cursor cursor = db.query(DATABASE_TABLE, null, null, null, null, null, null); 

    if(cursor.moveToFirst()) { 
     long rowId = cursor.getLong(cursor.getColumnIndex(KEY_ROWID)); 

     db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null); 
    } 
} 

나는 그때가 위의 준 코드 변경 : 뷰 상쾌한 fillData() 방법

public void delete(View view) 
{ 
    datasource.open(); 
    datasource.deleteFirst(); 
    fillData(); 
    datasource.close(); 
} 

을 - : 내가 사용하는 코드였다.

+0

매우 간단하고 아주 쉽게 경량 sqllite 프레임 워크? – jmishra

+0

아무 것도하지 않는 것이 오류가 아닙니다. 삭제 버튼에 대한 onClick은 위에 주어진 것입니다. 아직 내가 그것을 클릭하면 –

+0

당신이 'findViewById (R.id.buttonId)'를 사용하여 버튼을 첨부 한 문장을 실행하는 것 같지 않습니다? – jmishra

답변

2

데이터베이스의 첫 번째 레코드가 항상 "0"의 ID를 갖는 것은 아닙니다. 새 레코드를 삽입 할 때마다 기본 키가 1 씩 증가합니다. 따라서 필요한 것은 첫 번째 레코드의 ID를 얻고 해당 ID를 사용하여 삭제를 수행하는 것입니다.

Cursor cursor = db.query(DATABASE_TABLE, null, null, null, null, null, null); 

    if(cursor.moveToFirst()) { 
     long rowId = cursor.getLong(cursor.getColumnIndex(KEY_ROWID)); 

     db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null); 
    } 
+0

을 사용하는 버튼 설정을 추가했습니다. 나는 뭔가를 놓쳤다 고 생각했다. 어디서 그 문장을 써야하나요? –

+0

코드에서 db.delete 바로 앞에있는 것 같습니다. 나는 당신이 당신의 데이터베이스를 어떻게 구현했는지 알지 못하기 때문에 정말로 말할 수 없다.그러나 그것은 생각입니다. 먼저 쿼리를 수행하여 데이터베이스에서 첫 번째 레코드를 가져 와서 ID를 얻은 다음 해당 ID를 사용하여 삭제하십시오. –

+0

내가 한 것은 데이터베이스의 첫 번째 값을 지울 특정 코드가있는 "deleteFirst"라는 자체 데이터베이스 호출로 코드를 사용했다는 것입니다. 내가 어떻게 설정했는지 보여주기 위해 내 게시물을 편집해야합니까? –

0

정지 SQL에 대한 worrieng 및 사용 greenDAO : 안드로이드

로그 캣 오류가의 또는 오류 런타임 무엇

http://greendao-orm.com/

+0

내가 지금까지 앱의 개발로 변경할 수 있는지 확실하지 않습니다. 그것의 나의 마지막 프로젝트와 나는 내가 프로젝트를위한 기지의 일부로 SQLite를 사용할 것이라고 말했고 그래서 그것을 바꾸는 것은 내가 할 일을 바꿀 것이다. 비록 내가 그것을 들여다보고 그것이 일을 쉽게하는지 보게 될지라도. 이 늦은 단계에서도 구현이 가능하다면 그걸로 전환하겠다. –

관련 문제