问题描述:我想要一个"删除"功能,它可以在列表视图中执行删除/删除所选条目,同时删除Video_List目录中的驻留视频文件字符串,然后刷新列表视图的内容?
我对安卓/java相当陌生,有人可以帮助我吗?请向下滚动以评估我面临的问题!!有人可以告诉我应该在当前代码中添加哪些特定代码以执行上述提及功能?
由于您已将选择存储到 "item" 对象中,因此在 deleteFile() 方法中,您需要从该对象检索文件路径,为此,请添加以下行:
model.absolutePath =mfile.getAbsolutePath();
在getVideoFiles()方法'for'循环中。
同样在创建状态之前:
列表视图适配器 lv;
然后在 getVideoFiles 中处于结束状态:
lv = new ListViewAdapter(this, R.layout.row, videoItems);
setListAdapter(lv);
最后在 deleteFile() 中,您需要声明:
文件 myFile = new File(item.absolutePath);
lv.notifyDataSetChanged();
这应该有效!
您定义了 onListItemClick 的覆盖,但从未调用过此代码。还应将侦听器注册到正在使用的视图。检查安卓如何处理用户界面事件。
newListView.setOnItemClickListener(this);
是要删除适配器还是要删除列表中的行/条目?如果是后者,则更新视频项并调用适配器上的通知数据集已更改。如果您确实要删除适配器,则只需将其设置为 NULL 或让它引用其他某个 ListAdapter 实例,GC 将负责其余的工作。
@Override // create contextuel menu
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("Action");
menu.add(0,100,1,"delete");
}
//////////////////////////////////////////////////
@Override // Select an item
public boolean onContextItemSelected(MenuItem item) {
final AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
switch(item.getItemId()){
case 100:
public void onClick(DialogInterface dialog, int id) {
db.delete_item(info.id);
//here update list view
}
});
////////////
public boolean delete_item(long id){
return db.delete("name_table", "_id="+id, null)>0;}
////////////////