Android start activity when pressing widget ListView item

こ雲淡風輕ζ 提交于 2019-11-27 15:03:56
William Carter

Have a look here and scroll to the subheading Adding behavior to individual items.

You need to make sure you call both setPendingIntentTemplate() from your AppWidgetProvider and setOnClickFillInIntent() from your RemoteViewsService.RemoteViewsFactory implementation.

For example:

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

There is a more conclusive example in the StackWidget sample which is in the SDK samples, although I found it somewhat difficult to find (see here for directions). It creates an intent to show a Toast message, but it uses the same code.

To launch any Activity you create an Intent and then call startActivity on that intent. Check Intent and startActivity and I am sure you will able to do it yourself.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!