如何在列表视图文件浏览器中删除条目和视频文件?
Posted
技术标签:
【中文标题】如何在列表视图文件浏览器中删除条目和视频文件?【英文标题】:How to delete entry and video file in a listview file browser? 【发布时间】:2011-08-25 14:19:07 【问题描述】:问题描述:我想要一个“删除”功能,它可以删除/删除列表视图中的选定条目,同时删除 Video_List 目录中的驻留视频文件字符串,然后刷新列表视图的内容?
我是 android/java 的新手,有人可以帮我吗?请向下滚动以评估我面临的问题!有人能告诉我我应该在当前代码中添加什么特定代码来执行上述功能吗??
【问题讨论】:
@dhaag23 我想删除视频文件??向下滚动到代码底部。 【参考方案1】:由于您已将选择存储到“项目”对象中,因此在 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();
应该可以!
【讨论】:
@Lumis 这是我一直困扰的令人费解的部分,我被这个问题困扰了好几天,在删除列表视图中的选定文件和条目方面没有任何实际进展!!!你能帮我解决我的问题吗...我在 android/java 中比较新... @Lumis 非常感谢!! :) @Lumis 顺便问一下,您知道如何将条目和视频文件传输/存档到另一个文件目录 listview 活动吗? @Lumis 你知道如何将视频文件和列表视图条目复制/传输到另一个列表视图活动吗? 您只需要了解如何将文件复制到另一个文件夹,然后应用不同路径的相同代码: File filePath = new File("/sdcard/Video_List")【参考方案2】:您定义了一个覆盖 onListItemClick,但从未调用过此代码。您还应该将侦听器注册到您正在使用的视图中。查看android如何处理user interface events.
newListView.setOnItemClickListener(this);
【讨论】:
我认为您更好地理解了这个概念并阅读了我给您的链接。如果您正确理解,那行代码应该可以工作。 该行与在我的上下文中删除条目和视频文件有什么关系?【参考方案3】:您要删除适配器还是要删除列表中的行/条目?如果是后者,则更新 videoItems 并在您的适配器上调用 notifyDataSetChanged。如果你真的想删除适配器,那么只需将其设置为 NULL 或让它引用其他一些 ListAdapter 实例,GC 会处理其余的。
【讨论】:
@user693959 我想删除视频文件,同时删除正在单击的适配器项目,否则apter 仍将保留在列表视图中,不是吗?你能帮助我真的不知道如何做上述功能吗? 替换:deleteFile();用 deleteFile(v, 位置);使用传入的视图获取要删除的文件名:(TextView) v.findViewById(R.id.toptext).getText().toString()。当用户确认删除后,执行文件操作删除文件,然后删除数据列表 videoItems.remove(position) 中的条目。最后,通过 getListAdapter().notifyDataSetChanged() 更新 listView 以刷新您的 listview。 HTTH。 @user693959 你的解释还是很模糊??出现 deleteFile(v, position); 等错误getListAdapter().notifyDataSetChanged().. 对不起,我在编程方面非常糟糕,不知道我应该把你上面提到的适当代码放在哪里?海兹...【参考方案4】:@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;
////////////////
【讨论】:
以上是关于如何在列表视图文件浏览器中删除条目和视频文件?的主要内容,如果未能解决你的问题,请参考以下文章
安卓系统啥视频软件可以只将文件移除列表而不删除文件 本人手机小米2