마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 sqllite 연동 listView 삭제 질문합니다.

0 추천

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

익명사용자 님이 2016년 5월 9일 질문
8000자까지 밖에안되서 소스를 잘랐습니다.
필요하시면 말씀해주세요ㅜㅜ
http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040104&docId=251954962
여기가면 제가 지식인에 올린 소스들 있습니다....

1개의 답변

0 추천

v.setListner(onItemLongClickEvent);

뷰홀더패턴적용 안되어 있네요

데이터 넣다보면 섞입니다

익명사용자 님이 2016년 5월 9일 답변
어디다가 써야할까요???
...