sqlite를 이용하여 저장을 누르면 리스트뷰에 나타나는 어플입니다.
리스트뷰에 롱클릭리스너 넣어서 삭제하게 만들어봤는데 어디가 잘못됬는지 롱클릭이 안되네요
구글링 해보니까 리스트뷰랑 버튼이랑 같이쓰면 포커스때문에 클릭이 안된다고 하는데 focusable=false주고 해봐도 안되네요ㅜㅜ
왜그럴까요... 롱클릭리스너 삭제 sql문도 맞는지 확인해주시면 감사하겠습니다
java 부분 입니다.
public void mOnClick(View v) {
EditText eContent = (EditText)findViewById(R.id.b_content);
EditText eName = (EditText)findViewById(R.id.b_name);
String Content = eContent.getText().toString();
String Name = eName.getText().toString();
try {
String query = String.format(
"INSERT INTO %s VALUES (null, '%s', '%s');", TABLE_NAME, Content, Name);
db.execSQL(query);
cursor = db.rawQuery(querySelectAll, null);
myAdapter.changeCursor(cursor);
}
catch(SQLException e) {
}
eContent.setText("");
eName.setText("");
//저장 버튼 누르면 키보드 안보이게
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(eName.getWindowToken(), 0);
}
class MyDBHelper extends SQLiteOpenHelper {
public MyDBHelper(Context context) {
super(context, "MyData.db", null, 2);
}
public void onCreate(SQLiteDatabase db) {
String query = String.format("CREATE TABLE %s("
+ "_id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "%s TEXT, "
+ "%s TEXT);", TABLE_NAME, KEY_CONTENT, KEY_NAME);
db.execSQL(query);
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String query = String.format("Drop TABLE IF EXISTS %s", TABLE_NAME);
db.execSQL(query);
onCreate(db);
}
//롱클릭시 삭제
OnItemLongClickListener onItemLongClickEvent = new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?>parent, View view, int position, final long id) {
Builder builder = new AlertDialog.Builder(KM_Board.this);
builder.setMessage("삭제 하시겠습니까?");
builder.setPositiveButton("취소", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
SQLiteDatabase db = null;
if(db==null) {
db = openOrCreateDatabase("MyData.db", SQLiteDatabase.CREATE_IF_NECESSARY, null);
}
//String query = "DELETE FROM mytable WHERE _id = " + id + ";";
db.execSQL("DELETE FROM mytable WHERE _id = " + id + ";");
cursor = db.rawQuery(querySelectAll, null);
myAdapter.changeCursor(cursor);
if(db!=null) {
db.close();
}
}
});
builder.show();
return false;
}
};
}
}