Страницы

Поиск по вопросам

вторник, 17 декабря 2019 г.

Обновление виджета из другого активити

#java #android #eclipse


Как сделать, чтобы виджет обновлял выводимую информацию при закрытии другого активити?
Делаю блокнот. При добавлении виджета на экран он показывает информацию, которая хранится
в активити Edit, но при редактировании блокнота, информация в активити меняется, а
в виджете остается старая. 



При нажатии на виджет открывается Edit, но при изменении текста и сохранении, виджет
не обновляется.




Код, который я использовал

static void updateWidget(Context context, AppWidgetManager appWidgetManager,
    SharedPreferences sp, int widgetID) {
        // Редактирование заметки при нажатии на виджет
        Intent editIntent = new Intent(context, Edit.class);
        editIntent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
        editIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetID);
        editIntent.putExtra(com.bezruk.note.DataBase.KEY_ROWID, noteID);
        PendingIntent eIntent = PendingIntent.getActivity(context,widgetID,editIntent,PendingIntent.FLAG_UPDATE_CURRENT);
        // Обновление виджет
        appWidgetManager.updateAppWidget(widgetID, widgetView);
        widgetView.setOnClickPendingIntent(R.id.text_widget, eIntent);


Хотелось бы, чтобы при нажатии кнопки Save информация на виджете обновлялась на новую

Перепробовал уже много всего, но не получилось этого сделать.

Подскажите, как сделать, добрые программисты.
    


Ответы

Ответ 1



Если вы используете AppWidgetProvider, можете обновлять виджет из активити таким способом: Intent intent = new Intent(this, MyAppWidgetProvider.class); intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE); // используйте массив и EXTRA_APPWIDGET_IDS вместо AppWidgetManager.EXTRA_APPWIDGET_ID, // т.к., похоже, onUpdate() вызывается только в этом случае: int[] ids = {widgetId}; intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, ids); sendBroadcast(intent); (Источник ответа)

Комментариев нет:

Отправить комментарий