2013-05-31 3 views
0

hi i al stock в удалении Элемент для списка данных Для Androidite в Android моя проблема в том, что я пытаюсь удалить элемент, когда я его выбрал, и подтвердить, что диалог Dialog я думаю, что я hven't понять, как использовать удаления METHODE ти ид таблицы это мой код, пожалуйста, помогите мне его работа в ...Удалить элемент для списка SQLite android

база данных

public class ClientDataAdapter { 
    private static final String DATABASE_NAME = "clientbase.db"; 
    private static final int DATABASE_VERSION = 1; 
    static final String TABLE_CLIENT = "clienttable"; 
    private static Context context; 
    static SQLiteDatabase dc; 
private SQLiteStatement insertStmt; 

    private static final String INSERT = "insert into " 
     + TABLE_CLIENT + " (nom_complet,adresse_client,numero_telephone) values (?,?,?)"; 

    public ClientDataAdapter(Context context) { 
     ClientDataAdapter.context = context; 
     OpenHelper openHelper = new OpenHelper(ClientDataAdapter.context); 
     ClientDataAdapter.dc = openHelper.getWritableDatabase(); 
     this.insertStmt = ClientDataAdapter.dc.compileStatement(INSERT); 
     } 

    public long insert(String nom_complet,String adresse_client,String numero_telephone) { 
     this.insertStmt.bindString(1, nom_complet); 
     this.insertStmt.bindString(2, adresse_client); 
     this.insertStmt.bindString(3, numero_telephone); 
     return this.insertStmt.executeInsert(); 
    } 

    public void deleteAll() { 
     dc.delete(TABLE_CLIENT, null, null); 
    } 

    public List<String[]> selectAll() 
    { 

     List<String[]> list = new ArrayList<String[]>(); 
     Cursor cursor = dc.query(TABLE_CLIENT, new String[] { "id","nom_complet","adresse_client","numero_telephone"}, 
       null, null, null, null, "nom_complet asc"); 

     int x=0; 
     if (cursor.moveToFirst()) { 
      do { 
       String[] b1=new String[]{cursor.getString(0),cursor.getString(1),cursor.getString(2),cursor.getString(3)}; 

       list.add(b1); 

       x=x+1; 
      } while (cursor.moveToNext()); 
     } 
     if (cursor != null && !cursor.isClosed()) { 
      cursor.close(); 
     } 
     cursor.close(); 

     return list; 
    } 


    public void delete(int id) { 

     dc.delete("clienttable", "id=?", new String[] {String.valueOf(id)}); 
    } 

    private static class OpenHelper extends SQLiteOpenHelper { 

     OpenHelper(Context context) { 
      super(context, DATABASE_NAME, null, DATABASE_VERSION); 
     } 

     @Override 
     public void onCreate(SQLiteDatabase dc) { 
      dc.execSQL("CREATE TABLE " + TABLE_CLIENT + " (id INTEGER PRIMARY KEY, nom_complet TEXT NOT NULL, adresse_client TEXT NOT NULL, numero_telephone TEXT NOT NULL)"); 
     } 

     @Override 
     public void onUpgrade(SQLiteDatabase dc, int oldVersion, int newVersion) { 
      dc.execSQL("DROP TABLE IF EXISTS " + TABLE_CLIENT); 
      onCreate(dc); 
     } 
    } 


} 

и для моего Liste пожалуйста, скажите мне, что для изменения

public class ListedesClient extends ListActivity { 

    TextView selectionc; 
    public int idToModify; 
    ClientDataAdapter dm; 

    String clientId; 
    List<String[]> list = new ArrayList<String[]>(); 
    List<String[]> names2 =null ; 
    String[] stg1; 
    protected void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.listeclients); 
      dm = new ClientDataAdapter(this); 
      names2 = dm.selectAll(); 

     stg1=new String[names2.size()]; 

     int x=0; 
     String stg; 

     for (String[] name : names2) { 
      stg = name[1]+"   "+name[2]+ "   "+name[3]; 

      stg1[x]=stg; 
      x++; 
     } 


     ArrayAdapter<String> adapter = new ArrayAdapter<String>( 
       this,android.R.layout.simple_list_item_1, 
       stg1); 
     this.setListAdapter(adapter); 
     selectionc=(TextView)findViewById(R.id.selectionc); 

    }  

    public void onListItemClick(ListView parent, View v, final int position, long id) { 

     selectionc.setText("Vous êtes sur : " + stg1[position]); 

     AlertDialog.Builder builder = new AlertDialog.Builder(this) 
     .setTitle("Delete Item") 
     .setMessage("are you sure to delete?") 
     .setPositiveButton("Yes", 
       new DialogInterface.OnClickListener() { 

        @Override 
        public void onClick(DialogInterface arg0, int arg1) { 

         dm.delete(position); 



        } 
      }) 

     .setNegativeButton("No", 
       new DialogInterface.OnClickListener() { 

        @Override 
        public void onClick(DialogInterface dialog, 
          int which) { 
         // TODO Auto-generated method stub 
         return; 
        } 
      }); 
    builder.show(); 
    } 

} 
+0

Что происходит, когда вы пытаетесь удалить? Ничего или нет исключения (см. Logcat)? –

+0

ничего не происходит, когда я нажимаю «да», список остается таким же. –

+0

У вас есть две копии списка: одна в базе данных и одна в ArrayAdapter для ListView. Я не вижу кода для обновления ArrayAdapter после возможного изменения базы данных –

ответ

0

Попробуйте добавить notifyDataSetChanged() после удаления:

dm.delete(position); 
dm.notifyDataSetChanged(); 
Смежные вопросы