電話から連絡先を取得してリスト ビューに表示し、連絡先をマークしてリスト ビューに追加します。そこから、マークされたリスト ビューが追加され、マークされていないリスト ビューが削除されます。
これに使用したコードは..
@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();
}
連絡先はデータベースに完全に追加されていますが、データベースから削除されていません...