有人可以帮我这么做吗?我的代码就像:
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。我想为它添加一个自定义视图对象。但是在运行之后,屏幕上没有显示任何内容......
请帮我这样做。在此先感谢。
答案 0 :(得分:8)
无法向应用小部件添加自定义View
。有关允许View
类型的信息,请参阅“App Widgets开发指南”的the "Creating the App Widget Layout" section。
Android 3.0增加了对某些视图的支持以显示集合。有关详细信息,请参阅“使用带有集合的App小部件”部分。
否则,要向App Widget动态添加允许的View
,在对RemoteViews
进行充气并获取对它的引用后,您可以使用其addView(View)
方法或{{在addView(View)
。
View
个对象的方法