Удалить выбранный элемент из ListView
Я хочу удалить выбранный элемент из ListView
но я не могу Я перепробовал много методов, но они не работают для меня.
Это мой список адаптеров - элементы приходят с SD-карты.
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
FindFilesByType.this, android.R.layout.test_list_item,
Ringtones);
Как мне решить эту проблему?
3 ответа
Вы можете удалить элемент из базового списка и сообщить адаптеру, что набор данных изменился.
Посмотрите на этот метод для примера.
Реализуйте onitemclickListener и получите элемент (get ID), нажатый в arrayadapter, и затем вызовите arrayList.remove([ID]); adapter.notifyDataSetChanged();
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
LayoutInflater inflater=cntx.getLayoutInflater();
View row=inflater.inflate(R.layout.bookmark_row,null);
TextView tv=(TextView)row.findViewById(R.id.txtToc);
final TextView tv2=(TextView)row.findViewById(R.id.txtPgNo);
mCursor.moveToPosition(position);
System.out.println("Count Cursor"+mCursor.getCount());
if(mCursor.getCount()<=0)
{
tv.setText("No Bookmark Found");
}
else
{
tv.setText(mCursor.getString(1).toString());
tv2.setTag(mCursor.getString(0).toString());
tv2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
System.out.println(position);
db_conn.onDelete("tab_book", mCursor.getColumnName(0),Integer.parseInt((String) tv2.getTag()));
// Toast.makeText(ctx,"Bookmark Deleted", Toast.LENGTH_SHORT).show();
mToastTextView=new toastTextview(0, 0, ctx,listAct);
mToastTextView.showMessage("Bookmark Deleted");
refresh();
}
});
row.setTag(mCursor.getString(2).toString());
}
return row;
}
public void refresh()
{
mCursor=db_conn.onQueryGetCursor("tab_book",mItems,null, null, null, null, null);
mCursor.moveToPosition(0);
notifyDataSetChanged();
if(mCursor.getCount()<=0)
{
// Toast.makeText(ctx, "No Bookmark", Toast.LENGTH_SHORT).show();
try {
mFlingAct.dialogBookmark.dismiss();
} catch (Exception e) {
// TODO: handle exception3
e.printStackTrace();
}
}
}