gpt4 book ai didi

带有ListView的Android可点击小部件在ListItems上不可点击

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:05:01 26 4
gpt4 key购买 nike

我无法让我的 Widget 可点击。以下代码部分工作。我的小部件显示带有项目的 ListView。当单击没有显示任何项目的小部件时,Intent 工作并且 Activity 启动。但是当点击 ListView 的一个项目时没有任何反应。

代码如下:小部件提供者:

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>

ListViewItems 没有按钮或任何东西。

感谢您的帮助!

最佳答案

终于开始工作了:

在 Profider onUpdate 中:

final Intent activityIntent = new Intent(context, MainActivity.class);
final PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, activityIntent, PendingIntent.FLAG_UPDATE_CURRENT);
remoteViews.setPendingIntentTemplate(R.id.WidgetItem, pendingIntent);

并在 ViewsFactory getViewAt 中:

Bundle infos = new Bundle();
infos.putInt(TickWidgetProvider.WIDGET_LISTID, this.listId);
final Intent activityIntent = new Intent();
activityIntent.putExtras(infos);

remoteView.setOnClickFillInIntent(R.id.widgetListItemLayout, activityIntent);

不知道我在哪里找到它,但这个例子帮助我让它工作: https://github.com/commonsguy/cw-advandroid/tree/master/AppWidget/LoremWidget

关于带有ListView的Android可点击小部件在ListItems上不可点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32295769/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com