2014-07-16 4 views
0

sqllite에서 목록을 표시 할 수있게되었습니다. 이제 사용자가 항목을 클릭하면 항목이 삭제됩니다. 문제는 SQL의 항목 ID 번호가 목록보기의 ID와 다르다는 것입니다. 그래서 어떻게 내가 선택한 항목을 삭제할 수 있습니까? 공공 무효 onItemClick (어댑터 뷰 AdapterView 부모,보기보기, INT 위치, 긴 ID) 는 sqllite에서 항목의 ID와 다른 :android : ListView를 통해 SQL에서 행을 삭제하는 방법?

나는이 ID를 의미한다.

도움

Cursor resultSet = db.rawQuery("Select * from list ORDER BY `ID` DESC",null); 
    resultSet.moveToFirst(); 


     final ListView listview = (ListView) findViewById(R.id.listView1); 

    ArrayList<HashMap<String, String>> mylistData = new ArrayList<HashMap<String, String>>(); 
    String[] columnames = new String[] {"C1", "C2", "C3"}; 
    int[] columnsR = new int[] {R.id.column1, R.id.column2, R.id.column3}; 


    int x=0; 
    while(resultSet.moveToNext()){ 
     HashMap<String,String> map = new HashMap<String, String>(); 

     String d_weight = resultSet.getString(resultSet.getColumnIndex("weight")); 
     String d_date = resultSet.getString(resultSet.getColumnIndex("date")); 
     String d_id = resultSet.getString(resultSet.getColumnIndex("ID")); 

     x=0; 
     map.put(columnames[x],d_weight); 
     x++; 
     map.put(columnames[x],d_date); 
     x++; 
     map.put(columnames[x],d_id); 

     mylistData.add(map); 
    } 


     SimpleAdapter arrayAdapter = new SimpleAdapter(this, mylistData, R.layout.row,columnames , columnsR); 
      listview.setAdapter(arrayAdapter); 




     listview.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view,int position, long id) 
      { 

        // how to delete? =[ 
      }}); 

답변

0

당신이 각 항목에 대한 SQL 쿼리의 데이터로 채워 객체를 만들기 위해 쉽게하지 않을까요 주셔서 감사합니다? 그런 다음 listview에 이러한 객체의 목록을 채 웁니다. 즉, 객체 중 하나가 클릭되면 객체 내부에 id가 저장됩니다. 그런 다음 int 위치은 개체 목록의 위치와 동일한 값을 갖게됩니다.

어떻게 들리는가요?

관련 문제