doter.ua писал(а):FastRus1804 писал(а):Как строятся виджеты и конфигурационный экран всё понятно. Но по поводу нажатия не понял ничего. Объясните пожалуйста подробнее про то как работают нажатия и можно ли при помощи нажатия совершать действия в другом приложении?
Если ты смотрел урок, то там было про
RemoteViews с помощью которого настраиваются элементы.
С его помощью можно задать событие по клику:
Код: Выделить всё
setOnClickPendingIntent(R.id.ид_элемента_виджета, pIntent);
Где
pIntent
Код: Выделить всё
PendingIntent pIntent = PendingIntent.getActivity( ctx, widgetID, configIntent, 0);
В котором
configIntent
Код: Выделить всё
Intent configIntent = new Intent(ctx, ConfigActivity.class);
Итак: с помощью RemoteViews и PendingIntent можно настроить интент который запустит что-нибудь, например активити. У разработчика на 120 уроке не должно возникать вопросов: "что делать с пришедшем интентом в активити". Разве что если интентов много (из разных мест) можно сделать проверку по requestcode или по int в extras это уже на вашу фантазию.
Я понял это примерно так:
Intent configIntent = new Intent(ctx, ConfigActivity.class);
// вызываем интент экрана конфигурации
configIntent.setAction(AppWidgetManager.ACTION_APPWIDGET_CONFIGURE);
// без понятия зачем это
configIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetID);
// записывает данные с id виджета
PendingIntent pIntent = PendingIntent.getActivity(ctx, widgetID,
configIntent, 0);
//создаём пендинг интетнт для вызова активити
widgetView.setOnClickPendingIntent(R.id.tvPressConfig, pIntent);
// и как бы говорим что при нажатии на tvPressConfig вызывался pIntent.
только вот это действия связанные с настройкой или обновлением виджета. А как при помощи нажатия на tvPressConfig скажем сайт открыть или в другое приложение зайти или с сервисом взаимодействовать?