Ho problemi a rendere cliccabile il mio Widget. Il seguente codice funziona parzialmente. My Widget mostra un ListView con elementi. Facendo clic sul Widget in cui non è visualizzato alcun elemento, l'Intent funziona e l'attività inizia. Ma quando si fa clic su un elemento di ListView non accade nulla.Widget cliccabile Android con ListView non selezionabile su ListItems
Ecco il codice: WidgetProvicer:
public void onUpdate(final Context context, final AppWidgetManager appWidgetManager, final int[] appWidgetIds) {
for (final int iD : appWidgetIds) {
final RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout
.widget_layout);
final Intent intent = new Intent(context, TickWidgetService.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, iD);
intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME)));
remoteViews.setRemoteAdapter(R.id.WidgetItem, intent);
remoteViews.setEmptyView(R.id.WidgetItem, R.id.empty_view);
final Intent activityIntent = new Intent(context, MainActivity.class);
final PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, activityIntent, 0);
remoteViews.setOnClickPendingIntent(R.id.Widget, pendingIntent);
appWidgetManager.updateAppWidget(iD, remoteViews);
appWidgetManager.notifyAppWidgetViewDataChanged(iD, R.id.WidgetItem);
}
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
widget_layout.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/Widget"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ListView
android:id="@+id/WidgetItem"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="#D3D3D3"
android:dividerHeight="1dp"/>
<TextView
android:id="@+id/empty_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/darker_gray"
android:gravity="center"
android:text="@string/emptytext"
android:visibility="gone"/>
</LinearLayout>
Le ListViewItems non hanno pulsanti o qualsiasi.
Grazie per il vostro aiuto!
Hai provato a fare solo elencare gli oggetti non cliccabili? Perché penso che catturino gli eventi click. Sovrascrivendo areAllItemsEnabled() in listview adapter o sth? – Beloo
Non sto usando un adattatore. Ii ha un RemoteViewsFactory. Nel metodo getViewAt() aggiungo il contenuto a RemoteView, un RemoteView è un ListItem. – Tobi