OnTestItemClickListener라는 리스너를 생성해 adapter의 itemView를 누를시 삭제하는 과정을 하려고 합니다.
<TurnKoreanFragment.java>일부분
<TestInfo.java>
public class TestInfo {
int _id;
String year;
String month;
String age;
String grade;
String score;
public TestInfo(int _id, String year, String month, String age, String grade, String score ){
this._id = _id;
this.year = year;
this.month = month;
this.age = age;
this.grade = grade;
this.score = score;
}
public int getId() {
return _id;
}
public void setId(int _id) {
this._id = _id;
}
--생략--
TestInfo.java에서 _id값을 부여하고
<TurnKoreanFragment.java>
adapter.setOnItemClickListener(new OnTestItemClickListener() {
@Override
public void onItemClick(TestAdapter.ViewHolder holder, View view, int position) {
TestInfo test = adapter.getItem(position);
int _id = test.getId();
callback.delete(_id);
}
});
여기에 _id을 가져와 callback.delete(_id)를 입력해 해당 id값을 가진 데이터를 삭제하려고 합니다.
<OnDatabase라는 인터페이스>
public interface OnDatabaseCallback {
public void insert(String year, String month, String age, String grade, String score);
public ArrayList<TestInfo> selectAll();
public void delete(int _id);
}
<MainActivity.java>
public class MainActivity extends AppCompatActivity implements OnDatabaseCallback{
--생략--
@Override
public void delete(int _id) {
database.deleteItem(_id);
}
}
<TestDatabase>
public void deleteItem(int _id) {
try{
db.execSQL("delete from " + TABLE_TEST_INFO +
" where " +
" _id = " + _id);
}catch (Exception ex){
}
}
deleteItem(int _id)에 SQL문을 저렇게 입력하여 해당 _id값에 해당하는 데이터를 지우도록 하려하였지만
itemView클릭시 아무 반응을 하지 않습니다.
TestInfo.java에서 _id값을 만들때 TestInfo.java에서 getId(),setId()의 작성만으로 id값이 부여되는것이 아닌지...
그래서 현재 TurnKoreanFragment.java에서의 test에 id가 부여가 되지 않는 것인지..
아니면 전체적으로 코딩이 오류가 있는지.. 입력, 조회는 다 돌아가지만 id에 따른 삭제만 되고 있지 않습니다
혹은 DELETE문에서 이상이 있는건지 봐주세요