Как удалить запись и видео файл в браузере файлов списка? - PullRequest
0 голосов
/ 14 мая 2011

Описание проблемы: я хотел "удалить" функцию, которая могла бы выполнять удаление / удаление выбранной записи в просмотре списка и в то же самое время удалять строку видеофайла, находящуюся в каталоге Video_List, затем обновлять содержимое просмотра списка?

Я довольно новичок в Android / Java, может кто-нибудь помочь мне с этим?Прокрутите вниз, чтобы оценить проблему, с которой я столкнулся, пожалуйста!Может кто-нибудь сказать мне, какой конкретный код я должен добавить в мои текущие коды для выполнения вышеупомянутой функции ??

Ответы [ 4 ]

0 голосов
/ 14 мая 2011

Так как вы сохранили свой выбор в объекте "item", то в методе deleteFile () вам необходимо получить путь к файлу от этого объекта, для того, чтобы это работало, добавьте строку:

model.absolutePath = mfile.getAbsolutePath ();

в методе getVideoFiles () для цикла for.

также до состояния onCreate:

ListViewAdapter lv;

затем в getVideoFiles в конечном состоянии:

  lv = new ListViewAdapter(this, R.layout.row, videoItems);
  setListAdapter(lv); 

наконец в deleteFile () вам необходимо указать:

Файл myFile = новый файл(item.absolutePath);

lv.notifyDataSetChanged ();

, и это должно работать!

0 голосов
/ 13 мая 2011

Хотите удалить адаптер или удалить строку / запись в списке? Если последнее, то обновите videoItems и вызовите notifyDataSetChanged на вашем адаптере. Если вы действительно хотите удалить адаптер, просто установите для него значение NULL или обратитесь к другому экземпляру ListAdapter, а GC позаботится обо всем остальном.

0 голосов
/ 14 мая 2011
@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;}
    ////////////////
0 голосов
/ 13 мая 2011

Вы определили переопределение onListItemClick, но этот код никогда не вызывался. Вы также должны зарегистрировать слушателя для представления, которое вы используете. Проверьте, как Android обрабатывает события пользовательского интерфейса.

newListView.setOnItemClickListener(this);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...