问题描述:我想要一个“删除”功能,可以在列表视图中执行删除/删除所选条目,同时删除Video_List目录中的驻留视频文件字符串,然后刷新列表视图的内容?
我是android / java的新手可以有人帮我吗?向下滚动以评估我面临的问题!有人能告诉我我应该添加到当前代码中的具体代码是什么,以执行上述功能吗?
答案 0 :(得分:0)
您定义了一个覆盖onListItemClick,但从未调用此代码。您还应该将监听器注册到您正在使用的视图。检查android如何处理user interface events.
newListView.setOnItemClickListener(this);
答案 1 :(得分:0)
是否要删除适配器,或者是否要删除列表中的行/条目?如果是后者,则更新videoItems并在适配器上调用notifyDataSetChanged。如果你真的想要删除适配器,那么只需将其设置为NULL或让它引用其他一些ListAdapter实例,GC将负责其余部分。
答案 2 :(得分:0)
@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;}
////////////////
答案 3 :(得分:0)
由于您已将选择存储到“item”对象中,因此在deleteFile()方法中,您需要从该对象中检索文件路径,为此需要添加以下行:
model.absolutePath = mfile.getAbsolutePath();
在getVideoFiles()方法中'for'loop。
也是在onCreate状态之前:
ListViewAdapter lv;
然后在结束状态的getVideoFiles中:
lv = new ListViewAdapter(this, R.layout.row, videoItems);
setListAdapter(lv);
最后在deleteFile()中你需要声明:
文件myFile = new File(item.absolutePath);
lv.notifyDataSetChanged();
这应该有效!