Удалить подстроку с помощью контекстного меню в списке

100
15

У меня есть контекстное меню для удаления данных в списке, но когда я попробовал его в своем приложении, данные не удаляются. Раньше я вводил данные, используя запрос подстроки, в моем классе 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();
}

есть ли какое-нибудь решение для меня? любое решение будет очень полезно для меня. благодаря :-)

спросил(а) 2012-11-01T08:51:00+04:00 7 лет, 10 месяцев назад
1
Решение
112

после удаления просто установите setListAdapter (адаптер);

ответил(а) 2012-11-01T08:54:00+04:00 7 лет, 10 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема