我对此如何删除已选中的列表项感到困惑。在这里,我包括我的完整代码,请帮助我。
首先,在书签上列出jok。 JokList.Java
其次,我正在进行查询。 DatabaseHelper.java
最后我的意图是删除选中的项目。 bookjok.java
我希望你能给我一些建议。我从一周起就遇到了这个问题。谢谢你的进步。
答案 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;
}
}