如何在listview文件浏览器中删除条目和video文件?
问题描述:我想要一个“删除”function,可以在列表视图中执行删除/删除所选条目,同时删除Video_List目录中的驻留video文件字符串,然后刷新列表视图的内容?
我是android / java的新手可以有人帮我吗? 向下滚动以评估我面临的问题! 有人能告诉我,我应该添加到当前代码中的具体代码是什么,以执行上述function?
由于您已将选择存储到“item”对象中,因此在deleteFile()方法中,您需要从该对象中检索文件路径,为此需要添加以下行:
model.absolutePath = mfile.getAbsolutePath();
在getVideoFiles()方法中’for’循环。
也就在onCreate状态之前:
ListViewAdapter lv;
然后在getVideoFiles的最终状态:
lv = new ListViewAdapter(this, R.layout.row, videoItems); setListAdapter(lv);
最后在deleteFile()中你需要声明:
文件myFile = new File(item.absolutePath);
lv.notifyDataSetChanged();
这应该工作!
您定义了一个覆盖onListItemClick,但从未调用此代码。 您还应该将监听器注册到您正在使用的视图。 检查android如何处理用户界面事件。
newListView.setOnItemClickListener(this);
是否要删除适配器或者是否要删除列表中的行/条目? 如果是后者,则更新videoItems并在适配器上调用notifyDataSetChanged。 如果你真的想要删除适配器,那么只需将其设置为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;} ////////////////