我要获取与appwidget id关联的appwidget布局。
在appwidget的widget provider类中,android文档提供了获取appwidget id的简单方法……

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    final int N = appWidgetIds.length;
    // Perform this loop procedure for each App Widget that belongs to this provider
    for (int i=0; i<N; i++) {
        int appWidgetId = appWidgetIds[i];

但是他们不允许我知道它来自哪个appwidget提供者(多个widget提供者和布局)。
编辑:我使用一个服务类来更新小部件,而不是小部件提供者类。
在服务类中,我想获取每个id的appwidget布局,以便使用remoteviews更新该布局。我尝试了一些不同的建议,但没有一个给了我需要使用远程视图的价值。例如“r.id.widget_layout”
如何从正确的“int”格式的appwidget id中获取类似“r.id.widget_layout”的值以用于远程视图?

最佳答案

您可以通过以下方式获取每个appwidget的appwidget布局id和提供程序的信息:

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    final int N = appWidgetIds.length;

    for(int i=0; i<N; i++) {

        int appWidgetId = appWidgetIds[i];

        // you can use layoutId variable instead of R.id.widget_layout
        int layoutId = appWidgetManager.getAppWidgetInfo(appWidgetId).initialLayout;
        // String yourProvider will be something like .WidgetProvider2x2
        String yourProvider = appWidgetManager.getAppWidgetInfo(appWidgetId).provider.getShortClassName();

    }

}

关于android - 如何获取与AppID关联的AppLayout布局,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22894590/

10-10 07:45