如何使用数据库删除android中的特定检查列表项

时间:2012-02-22 08:50:59

标签: android database listitem

我对此如何删除已选中的列表项感到困惑。在这里,我包括我的完整代码,请帮助我。

首先,在书签上列出jok。 JokList.Java

其次,我正在进行查询。 DatabaseHelper.java

最后我的意图是删除选中的项目。 bookjok.java

我希望你能给我一些建议。我从一周起就遇到了这个问题。谢谢你的进步。

1 个答案:

答案 0 :(得分:0)

我正在粘贴示例代码,我将从列表中删除已检查的数据

public class ListViewwithCheckBoxesActivity extends Activity {
/** Called when the activity is first created. */
private String savedNames = null,savedPhoneno = "";
private ListView listView;
final String SETTING_TODOLIST = "todolist";
private ArrayList<String> selectedItems = new ArrayList<String>();
static List<PhoneList> phonelist = new ArrayList<PhoneList>();
static String[] names ,phoneno;
PhonebookAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.phonebooklist);
    listView = (ListView) findViewById(R.id.phlist);    
    phoneno = new String[]{"9441781204","95503999393","7799455550"};
    names = new String[]{"name1","name2","name3","name4"};
    for(int i =0; i<phoneno.length; i++ ){
        phonelist.add(new PhoneList(names[i], phoneno[i], false));

    }
     adapter = new PhonebookAdapter(this, phonelist);
    listView.setAdapter(adapter);
    Button btnDelete = (Button) findViewById(R.id.btnDelete);
    btnDelete.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            String deletedItems = getDeletedItems();

            //Here open the database, call the query, delete from database and refresh the list and call the adapter once again

        }
    });
    Button btnClear = (Button) findViewById(R.id.btnClear);
    btnClear.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            phonelist.clear();
            for(int i =0; i<phoneno.length; i++ ){
                phonelist.add(new PhoneList(names[i], phoneno[i], false));

            }
            adapter = new PhonebookAdapter(getBaseContext(), phonelist);
            listView.setAdapter(adapter);

        }
    });
    Button btnSelectAll = (Button) findViewById(R.id.btnSelectAll);
    btnSelectAll.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            phonelist.clear();
            for(int i =0; i<phoneno.length; i++ ){
                phonelist.add(new PhoneList(names[i], phoneno[i], true));

            }
            adapter = new PhonebookAdapter(getBaseContext(), phonelist);
            listView.setAdapter(adapter);

        }
    });

}
public class PhonebookAdapter extends BaseAdapter {


    private LayoutInflater inflater;
    private TextView nameTV, phonenumberTV;

    public PhonebookAdapter(Context context, List<PhoneList> phoneList) {
        inflater = LayoutInflater.from(context);
        ListViewwithCheckBoxesActivity.phonelist = phoneList;
    }

    public int getCount() {
        return ListViewwithCheckBoxesActivity.phonelist.size();
    }

    // @Override
    public Object getItem(int position) {
        return ListViewwithCheckBoxesActivity.phonelist.get(position);
    }

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

    // @Override
    public View getView(final int position, View convertView,
            ViewGroup parent) {

        convertView = inflater.inflate(R.layout.phonebook, null);
        nameTV = (TextView) convertView.findViewById(R.id.nameTV);
        nameTV.setText(ListViewwithCheckBoxesActivity.phonelist.get(position).getname());
        phonenumberTV = (TextView) convertView.findViewById(R.id.phonenoTV);
        phonenumberTV.setText(ListViewwithCheckBoxesActivity.phonelist.get(position).getphoneNo());

        final CheckBox checkBox = (CheckBox) convertView
                .findViewById(R.id.checkBox1);

        checkBox.setChecked(ListViewwithCheckBoxesActivity.phonelist.get(position).getChecked());
        checkBox.setOnClickListener(new OnClickListener() {

            public void onClick(View arg0) {
                System.out.println("checkBox.isChecked()"+ checkBox.isChecked());
                if (checkBox.isChecked() == true) {
                    ListViewwithCheckBoxesActivity.phonelist.get(position).setChecked(true);
                } else {
                    ListViewwithCheckBoxesActivity.phonelist.get(position).setChecked(false);
                }
            }
        });

        return convertView;
    }

}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    return true;
}
public boolean onPrepareOptionsMenu (Menu menu) {
    /*if(optionsMenuSelected){
        optionsMenuSelected = false;
      return true;
    }
    else{
        return false;
    }*/
    return true;
}

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {

    case R.id.showCheckboxes:
        CheckBox checkBox1 = (CheckBox)findViewById(R.id.checkBox1);
        checkBox1.setVisibility(1);
        break;

    }
    return true;
}
private String getDeletedItems() {
    String savedNames= "";
    String[] tempNames = null, tempPhonenos = null;

    int count = this.listView.getAdapter().getCount();

    for (int i = 0; i < count; i++) {

        if (ListViewwithCheckBoxesActivity.phonelist.get(i).getChecked() == true) {
            savedNames += ListViewwithCheckBoxesActivity.phonelist.get(i).getname();
            System.out.println("savedNames is "+savedNames);
            for(int i1 =0;i1 < names.length;i1++)
            {
                        if(savedNames.equals(names[i]))
                        {

                            tempNames = new String[names.length - 1];   
                            tempPhonenos = new String[names.length-1];
                             System.arraycopy(names, 0, tempNames, 0, i);
                             System.arraycopy(names, i+1, tempNames, i, names.length-i-1);
                             System.arraycopy(phoneno, 0, tempPhonenos, 0, i);
                             System.arraycopy(phoneno, i+1, tempPhonenos, i, phoneno.length-i-1);


                        }

            }
        }
    }
            phonelist.clear();
            for(int i1 =0; i1<tempNames.length; i1++ ){
                phonelist.add(new PhoneList(tempNames[i1], tempPhonenos[i1], false));

            }
            adapter = new PhonebookAdapter(getBaseContext(), phonelist);
            listView.setAdapter(adapter);




    return savedNames;
}


}