Опубликовано: понедельник, 30 ноября 2009 г., 17:08 Заголовок сообщения: Простая проблема с дополнительными возможностями
Здравствуйте,
Я работаю над виджетом приложения для домашнего экрана. Я пытаюсь сделать так, чтобы, когда пользователь нажимает на виджет, он изменяет данные, отображаемые в виджете. Однако я также разрешаю открывать несколько экземпляров виджетов с разными данными. Поэтому, чтобы сообщить моему методу, какой виджет обновлять, я добавляю дополнительный элемент к намерению, которое запускается для изменения данных.
Вот мое намерение:
Java:
Intent changeData = new Intent("com.tonycosentini.mintdroid.CHANGE_DATA");
changeData.putExtra("widget_id", currentWidgetId);
PendingIntent changeDataPendingIntent = PendingIntent.getBroadcast(this, 0, changeData, 0);
//This will return the correct value, but if I call it in my onreceive() method it won't.
Log.v(TAG, "stored id is: " + changeData.getIntExtra("widget", 0);
Это правильно хранит идентификатор виджета, но когда вызывается метод изменения данных, идентификатор виджета, который читается из намерения, является первым экземпляром виджета. То есть существует цикл for, который генерирует все виджеты, и независимо от того, к какому виджету вы нажимаете, идентификатор получаемого виджета всегда является первым идентификатором виджета в первом виджете.
У кого-нибудь есть идеи, как это решить? Надеюсь, я не сказал это слишком плохо.
Спасибо за чтение,
Tony