gpt4 book ai didi

Android 在按下小部件 ListView 项目时启动 Activity

转载 作者:可可西里 更新时间:2023-11-01 18:55:11 24 4
gpt4 key购买 nike

我正在开发一个 ListView 小部件,我希望用户能够在单击 ListView 时启动一个 Activity 。我一直无法找到任何类型的教程,所以我想知道是否有人可以指出正确的方向或者分享一些代码。无论单击哪个 ListItem,我都想启动相同的 Activity ,所以这不是问题。

感谢所有帮助!

最佳答案

看看here并滚动到副标题向单个项目添加行为

您需要确保从您的 AppWidgetProvider 调用 setPendingIntentTemplate() setOnClickFillInIntent()您的 RemoteViewsService.RemoteViewsFactory 实现。

例如:

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 widgetRow;
}
}

SDK samples 中的 StackWidget 样本中有一个更有说服力的例子,虽然我发现它有点难以找到(有关说明,请参阅 here)。它创建一个显示 Toast 消息的 Intent ,但它使用相同的代码。

关于Android 在按下小部件 ListView 项目时启动 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14299187/

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