Я не могу удалить элемент mycardview из класса BroadcastReceiver - PullRequest
0 голосов
/ 28 октября 2018

Я использую просмотр карты в myFragment. И я хотел бы удалить элемент из карты, когда myFragment получает трансляцию. Я вызываю remove и уведомляюItemRemoved, когда myFragment получает трансляцию. Но элемент в просмотре карты не удаляется. Для пробной версии я создал слушатель кнопки в onViewCreated в myFragment для вызова remove и notifyItemRemoved. затем я нажимаю эту кнопку, элемент в cardview удаляется ... Чем отличается вызов от BroadcastReceiver и слушателя кнопок ???

myFragment

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.fragment_dash_board, container, false);
    if(mitems.size() != 0) {
        recyclerView = view.findViewById(R.id.recycle_view_noticeItems);
        recyclerView.setHasFixedSize(true);
        Context context = getContext();
        recyclerView.setLayoutManager(new LinearLayoutManager(context));
        mviewadapter = new NoticeItemsViewAdapter(mitems);
        recyclerView.setAdapter(mviewadapter);
    }

    IntentFilter messageFilter = new IntentFilter("AlarmEvent");
    DataReceiver dataReceiver = new DataReceiver();

    LocalBroadcastManager.getInstance(context)
            .registerReceiver(dataReceiver, messageFilter);

    return view;

Класс DataReceiver в myFragment

    public class DataReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.d("DataReceiver", "onReceive");
        String id = intent.getStringExtra("id");

        //I would like to remove an item in cardview here.
        //mitems and mviewadapter are member of myFragment.
        mitems.remove(0);
        mviewadapter.notifyItemRemoved(0);
    }
...