#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); (Источник ответа)
Комментариев нет:
Отправить комментарий