动态地向RemoteViews添加自定义视图

4

有人能帮我完成这个吗?我的代码如下:

 public CustomClass extends View {

//uses ondraw() to do something

}

为了在主屏幕上显示我的自定义视图,我创建了一个类来扩展广播接收器:
public class customAppWidgetProvider extends BroadcastReceiver {

    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();

        if (AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action)) {
            RemoteViews views = new RemoteViews(context.getPackageName(),
                    R.layout.main);

           //Here I want to create my custom view class object and I want to add this view to linear layout in main.xml

              CustomClass object = new CustomClass(context) ;
              LinearLayout layout = new LinearLayout(context) ;
              layout.setLayoutParameters(new LayoutParameters(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
              layout.addView(object);

            views.addview(R.id.linearlayout, (ViewGroup) layout) ;
            views.setOnClickPendingIntent(R.id.analog_appwidget,
                    PendingIntent.getActivity(context, 0,
                        new Intent(context, AlarmClock.class),
                        PendingIntent.FLAG_CANCEL_CURRENT));

            int[] appWidgetIds = intent.getIntArrayExtra(
                    AppWidgetManager.EXTRA_APPWIDGET_IDS);

            AppWidgetManager gm = AppWidgetManager.getInstance(context);
            gm.updateAppWidget(appWidgetIds, views);
        }
    }
}

但是将ViewGroup添加到RemoteView引用中并不起作用...上面的main.xml布局仅包含LinearLayout。我想将自定义视图对象添加到其中。但是运行后屏幕上没有显示任何内容...

请帮助我完成这个任务。先谢谢了。

1个回答

8
无法向应用小部件添加自定义View。请参见应用小部件开发指南的{{link1:“创建应用小部件布局”部分}},了解允许使用哪些View类型。
Android 3.0添加了对一些视图集合的支持。有关详细信息,请参见“使用集合与应用小部件”部分。
否则,要动态添加允许的View到应用小部件中,在填充RemoteViews并获取其引用后,可以使用其addView(View)方法或任何已在RemoteViews中的View对象上的addView(View)方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接