Dai un'occhiata allo here e passa alla sottovoce Aggiunta di comportamenti a singoli articoli.
È necessario assicurarsi di chiamare sia setPendingIntentTemplate()
dal AppWidgetProvider
esetOnClickFillInIntent()
dal RemoteViewsService.RemoteViewsFactory
implementazione.
Ad esempio:
public class Widget extends AppWidgetProvider {
// ...
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
for(int i = 0; i < appWidgetIds.length; i++){
RemoteViews widget = new RemoteViews(context.getPackageName(), R.layout.widget);
Intent startActivityIntent = new Intent(context, myActivity.class);
PendingIntent startActivityPendingIntent = PendingIntent.getActivity(context, 0, startActivityIntent, PendingIntent.FLAG_UPDATE_CURRENT);
widget.setPendingIntentTemplate(R.id.list_view, startActivityPendingIntent);
appWidgetManager.updateAppWidget(appWidgetIds[i], widget);
// ...
}
}
public class WidgetAdapter implements RemoteViewsService.RemoteViewsFactory {
// ...
@Override
public RemoteViews getViewAt(int position) {
RemoteViews widgetRow = new RemoteViews(context.getPackageName(), R.layout.widget_row);
Intent fillInIntent = new Intent();
fillInIntent.putExtra(Widget.EXTRA_LIST_VIEW_ROW_NUMBER, position);
widgetRow.setOnClickFillInIntent(R.id.list_view_row, fillInIntent);
// ...
return row;
}
}
C'è un esempio più conclusiva nel campione StackWidget che è nel SDK samples, anche se ho trovato un po 'difficile da trovare (vedi here per le direzioni). Crea un intento di mostrare un messaggio Toast, ma usa lo stesso codice.
fonte
2013-02-11 12:12:03
penso che questo sia più semplice: http://stackoverflow.com/a/20774402/878126 –
L'unica cosa che ha funzionato per me. Grazie – IHeartAndroid
sembra che ottenga tutti i dati in ListView così quando vai all'attività non restituisce l'extra corretto che hai messo. Come risolvere questo? – natsumiyu