如何在listview文件浏览器中删除条目和视频文件?

时间:2011-05-14 17:08:49

标签: java android file android-listview android-arrayadapter

问题描述:我想要一个“删除”功能,可以在列表视图中执行删除/删除所选条目,同时删除Video_List目录中的驻留视频文件字符串,然后刷新列表视图的内容?

我是android / java的新手可以有人帮我吗?向下滚动以评估我面临的问题!有人能告诉我我应该添加到当前代码中的具体代码是什么,以执行上述功能吗?

4 个答案:

答案 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();

这应该有效!