Удалить подстроку с помощью контекстного меню в списке
У меня есть контекстное меню для удаления данных в списке, но когда я попробовал его в своем приложении, данные не удаляются. Раньше я вводил данные, используя запрос подстроки, в моем классе AlmagHelper. если что-то не так с кодировкой, которую я создал? пожалуйста помоги..
Этот класс активности, который я создал..
public class Pendapatan extends ListActivity {
Cursor model=null;
AlmagAdapter adapter=null;
AlmagtHelper helper=null;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.listview_nasabah);
helper=new AlmagtHelper(this);
model=helper.getAllPendapatan();
startManagingCursor(model);
adapter=new AlmagAdapter(model);
setListAdapter(adapter);
registerForContextMenu(getListView());
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
getMenuInflater().inflate(R.menu.action_pendapatan, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item){
AdapterView.AdapterContextMenuInfo info=
(AdapterContextMenuInfo)item.getMenuInfo();
switch (item.getItemId()) {
case R.id.hapus_pendapatan:
delete(info.id);
return(true);
}
return false;
}
private void delete(final long rowId) {
if (rowId>0) {
new AlertDialog.Builder(this)
.setTitle("Hapus")
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
prosesDelete(rowId);
}
}) .setNegativeButton("Batal", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int whichButton) {
}
}).show();
}
}
private void prosesDelete(long rowId) {
String[] args={String.valueOf(rowId)};
//is there something wrong with this code?
helper.getWritableDatabase().delete("pendapatan", "_id =?", args);
model.requery();
}
Это код для ввода данных, содержащихся в классе AlmagHelper..
public Cursor getAllPendapatan() {
return(getReadableDatabase()
.rawQuery("SELECT substr(_id, 1, 10) as _id, sum(value) as total FROM pendapatan GROUP BY _id ",
null));
}
Я пробовал использовать этот код, но он не работает
private void prosesDelete(long rowId) {
String[] args={String.valueOf(rowId)};
helper.getWritableDatabase().delete("pendapatan", "(substr(_id, 1, 10)) = _id =?", args);
model.requery();
}
есть ли какое-нибудь решение для меня? любое решение будет очень полезно для меня. благодаря :-)
после удаления просто установите setListAdapter (адаптер);
Еще в рубрике
- Вопросы
- Android-contextmenu
- Удалить подстроку с помощью контекстного меню в списке