Обновите несколько адаптеров в appwidget

Я создаю приложение, которое имеет 2 разных адаптера, один из которых StackView, а второй - GridView, для отображения изображений из внешней папки. Когда я нажимаю на кнопку с изображением, меняется макет и создается новый RemoteView. В OnReceive, когда я добавляю или удаляю изображение, я хотел бы уведомить оба адаптера об изменении данных, используя notifyAppWidgetViewDataChanged для каждого адаптера. Но обновление происходит только для одного из них

@Override
public void onReceive(Context context, Intent intent) {
    super.onReceive(context, intent);
    int appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, 0);
    AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
    if (intent.getAction().equals(SharedData.ACTION_GALLERY)) {
        updateLayout(context, appWidgetManager, appWidgetId, R.layout.gallery_screen);
    } else if (intent.getAction().equals(SharedData.ACTION_MAIN)) {
        updateLayout(context, appWidgetManager, appWidgetId, R.layout.visual_memo);
    } else if (intent.getAction().equals(SharedData.ACTION_ON_STACK_CLICK)) {
        String filename = intent.getStringExtra(SharedData.ITEM_NAME);
        Intent fullScreenIntent = new Intent(context, FullScreenActivity.class);
        fullScreenIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
        fullScreenIntent.putExtra(SharedData.ITEM_NAME, filename);
        fullScreenIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(fullScreenIntent);
    } else if (intent.getAction().equals(SharedData.RECEIVE_ADD)) {
        Log.d("BitmapCreator", "Receive_add");
        appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetId, R.id.stackView);
        appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetId, R.id.gridView);
    }
}

0 ответов

Другие вопросы по тегам