2017-08-05 8 views
0

私は自分のAnaMenuアクティビティでlistviewをカスタマイズしました。このリストビューはデータベースのデータによって作成されています。私はデータベース内のすべてのデータを削除しようとしており、MainActivityに行きたいと思っています。アクションバーのロゴをクリックすると、すべてのデータが削除されますが、試してみるとエラーメッセージが表示されます。私のデータベースには4つの列があります。別の重要なことがあります:私のAnaMenuアクティビティにはこれがあります。 (私のMainActivityで。)カスタムアダプターの使用中にデータベースのデータを削除する方法は?

mDatabaseHelper = new DatabaseHelper(this); 
     Cursor data = mDatabaseHelper.getData(); 
     sayı = data.getCount(); 

     if (sayı > 4){ 
      Intent i = new Intent(MainActivity.this,AnaMenu.class); startActivity(i); 
      MainActivity.this.finish(); 
     } 

(私のAnaMenu活動で)私のカスタムアダプタを作成する方法:

これを

while(data.moveToNext()){ 

      listDataId.add(data.getString(0)); 

      listData.add(data.getString(1)); 


      listDatanumber.add(data.getString(2)); 

      listDataoran.add(data.getString(3)); 


     } 
     liste.setAdapter(oyunTextView); 

    } 


    class OyunTextView extends BaseAdapter { 


     @Override 
     public int getCount() { 

      return listData.size(); 
     } 

     @Override 
     public Object getItem(int position) { 
      return null; 
     } 

     @Override 
     public long getItemId(int position) { 
      return 0; 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      convertView = getLayoutInflater().inflate(R.layout.oyuntextview, null); 
      TextView namesbox = (TextView) convertView.findViewById(R.id.isim); 
      sayılar = (TextView) convertView.findViewById(R.id.sayı); 
      namesbox.setText(listData.get(position)); 
      sayılar.setText(listDataoran.get(position)); 


      return convertView; 
     } 
    } 

私のデータベース方法:

public void deleteAllName(int id, String name ,String numara, String oran){ 
     SQLiteDatabase db = this.getWritableDatabase(); 
     String query = "DELETE FROM " + TABLE_NAME + " WHERE " 
       + COL1 + " = '" + id + "'" + COL2 + " = '" + name + COL3 + " = '"+ numara + 
       " AND " + COL4 + " = '" + oran + "'"; 
     Log.d(TAG, "deleteName: query: " + query); 
     Log.d(TAG, "deleteName: Deleting " + name + " from database."); 
     db.execSQL(query); 
    } 

それは、ロゴアイコンの私のコードです:あなたは、あなたのマッチング値の間AND条件を追加する必要があり、また、'" + name

private void geri() { 
     for (int d = 0 ; d<listDatanumber.size() ; d++) { 
     int id = Integer.parseInt(listDataId.get(d)); 
      String isim = listData.get(d); 
      String number = listDatanumber.get(d); 
     String oran = listDataoran.get(d); 
     mDatabaseHelper.deleteAllName(id,isim,number,oran); 
    } 


     Intent ii = new Intent(AnaMenu.this, MainActivity.class); 
     startActivity(ii); 
     AnaMenu.this.finish(); 

    } 

答えて

1

には一致'

String query = "DELETE FROM " + TABLE_NAME + " WHERE " 
       + COL1 + " = '" + id + "' AND " 
       // AND clause    ^^^^^ 
       + COL2 + " = '" + name + "' AND " 
       // matching '   ^
       + COL3 + " = '"+ numara +"' AND " 
       + COL4 + " = '" + oran + "'"; 

注意を持っていない:あなただけの行を削除することができますいくつかのユニークな列の値を使用するか、idINTEGER PRIMARY KEY AUTOINCREMENT NOT NULL

+0

とすることができます。 –

関連する問題