Swe*_*now 14 android listview widget click android-intent
我正在使用ListView小部件,我希望用户能够在单击ListView时启动活动.我还没有找到任何关于此的教程,所以我想知道是否有人能指出我正确的方向或者可能分享一些代码.我想要启动相同的活动,无论单击哪个ListItem,这都不是问题.
所有帮助表示赞赏!
Wil*_*ter 39
看看这里,然后滚动到副标题添加行为的个别项目.
您需要确保setPendingIntentTemplate()从您AppWidgetProvider 和 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;
}
}
Run Code Online (Sandbox Code Playgroud)
StackWidget示例中有一个更确定的示例,它位于SDK示例中,但我发现它有点难以找到(请参阅此处查看说明).它创建了一个显示Toast消息的意图,但它使用相同的代码.
| 归档时间: |
|
| 查看次数: |
9264 次 |
| 最近记录: |