Удалить элемент ListView из фрагмента

189
08 мая 2018, 01:15

Как передать данные из фрагмента в активити для удаления элемента ListView? номер элемента мне известен (был получен во фрагменте через Bundle).Метод ((MainActivity)getActivity()) - тут не прокатывает.

Answer 1

Правильно делать через interface.

Во фрагменте:

public interface DeleteItem {
    void deleteItem(int position)
}
DeleteItem deleteItem;
@Override //метод для API 23+
public void onAttach(Context context) {
    super.onAttach(context);
    try {
        deleteItem = (DeleteItem) context;
    } catch (ClassCastException e) {
        e.printStackTrace();
    }
}
@Override //метод для API < 23
public void onAttach(Activity activity) {
    super.onAttach(activity);
    try {
        deleteItem = (DeleteItem) activity;
    } catch (ClassCastException e) {
        e.printStackTrace();
    }
}
@Override
public void onDetach() {
    super.onDetach();
    deleteItem = null;    
}

В активити:

MainActivity implements MyFragment.DeleteItem
void deleteItem (int position){
    ...удаление/если надо, обновление адаптера
}

Вызывать во фрагменте: deleteItem.deleteItem(position);

READ ALSO
Private конструктор

Private конструктор

Можно ли создать объект, если конструктор имеет модификатор private? Если да, то зачем собственно конструктору нужен модификатор доступа, помогите...

207
Несколько EditText с одинаковым ID

Несколько EditText с одинаковым ID

В LinearLayout циклом добавляется фрагмент, укомплектованный в другомxml файле

204
Как правильно писать микро-тесты в Java?

Как правильно писать микро-тесты в Java?

Как лучше писать микро-тесты/тесты на производительность в Java? Какие основные пункты, на которые стоит обратить внимание?

259