0

電話から連絡先を取得してリスト ビューに表示し、連絡先をマークしてリスト ビューに追加します。そこから、マークされたリスト ビューが追加され、マークされていないリスト ビューが削除されます。

これに使用したコードは..

        @Override
    public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
if (convertView == null) {
    x= position;
    LayoutInflater inflator = context.getLayoutInflater();
    view = inflator.inflate(R.layout.contactliststyle, null);
    final ViewHolder viewHolder = new ViewHolder();
    viewHolder.txtName = (TextView) view.findViewById(R.id.txtView_Name);
    viewHolder.txtNumber = (TextView)view.findViewById(R.id.txtView_Number);
    viewHolder.selection = (CheckBox)view.findViewById(R.id.checkbtn_selectContact);
    viewHolder.selection
            .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

                public void onCheckedChanged(CompoundButton buttonView,
                        boolean isChecked) {
                    ContactModel element = (ContactModel)viewHolder.selection
                            .getTag();
                    element.setSelected(buttonView.isChecked());
                    if(buttonView.isChecked())
                    {
                    String selectedName=element.getName();
                    String selectedNumber=element.getNumber();
                    System.out.println("etrtrt"+element.getName());
                    DatabaseHandler db = new DatabaseHandler(context);

                    Log.d("Insert: ", "Inserting ..");
                    db.addContact(new Contact(selectedName, selectedNumber));

                    }
                    else
                    {
                         String selectedName=element.getName();
                        String selectedNumber=element.getNumber();
                        System.out.println("Number"+selectedNumber);
                        System.out.println("Name"+selectedName);
                        DatabaseHandler db = new DatabaseHandler(context);
                        db.deleteContact(new Contact(selectedName,selectedNumber));
                    }

                }
            });

連絡先を削除するための openHelper クラスのコードは次のとおりです。

// Deleting single contact
public void deleteContact(Contact contact) {

    SQLiteDatabase db = this.getWritableDatabase();
    db.delete(TABLE_CONTACTS, KEY_ID + " = ?",
            new String[] { String.valueOf(contact.getID()) });
    System.out.println("Deleted");
    db.close();
}

連絡先はデータベースに完全に追加されていますが、データベースから削除されていません...

4

1 に答える 1

0

これを試して

getWritableDatabase().delete(TABLE_NAME, TABLE_ROW_ID + "="+rowId,null) を使用

于 2013-02-06T10:11:09.667 に答える