找出RemoteViews / AppWidgets使用的布局中是否存在id

问题描述 投票:0回答:1

我想有一个灵活的Appwidget,它调查相关布局中包含哪些视图,哪些不包含。通常我会使用findViewByID来查看它是否返回任何ID,但这在appWidgets中是不可能的。我怎样才能做到这一点?

我尝试了context.getResources()。getIdentifier(name,“id”,context.getPackageName())但是这将始终返回一个有效的id,因为id是由另一个布局文件定义的。我需要找出我当前的布局是否包含id。

public class MyWidget extends AppWidgetProvider {
    static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
                                int appWidgetId) {                  
        String idName="idName";
        String layoutName="layoutName";

        RemoteViews views = new RemoteViews(context.getPackageName(), Tools.getLayoutResource(context,layoutName));
        boolean idExistsInLayout=context.getResources().getIdentifier(name, "id", context.getPackageName());
    }
}
android android-appwidget
1个回答
1
投票

我怎样才能做到这一点?

AFAIK,你做不到。没有这个API,而AFAIK过程中的RemoteViews实例甚至都没有查看布局资源。它只是将该ID与您的其他值一起传递给另一个进程进行渲染。

没有什么可以阻止你自己的代码膨胀布局,然后对你膨胀的布局而不是RemoteViews进行这些类型的检查。这就像用别克拍苍蝇一样;我怀疑对于你要解决的任何问题都有更简单的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.