我为我的应用程序创建了一个小部件,但在显示我的主要小部件布局之前,我需要一个初始加载布局。我已经将加载布局作为初始布局和主要布局。在我的东西在 onUpdate 方法完成加载后,我尝试使用 RemoteViews 显示我的主要小部件布局,但它没有显示出来。
有没有办法从初始布局切换到主布局?
编辑
抱歉回复晚了,希望我展示的是正确的方块。我所做的是在应用程序小部件属性中设置初始布局,并通过另一个类文件中的服务更改为我在 onUpdate 方法中显示的实际布局。
这是我的代码:
小部件信息
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:initialLayout="@layout/initial_layout"
android:minHeight="146dp"
android:minWidth="294dp"
android:updatePeriodMillis="1800" >
</appwidget-provider>
这是我为 onUpdate 方法输入的内容:
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
// TODO Auto-generated method stub
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
//start service
Intent myIntent = new Intent(context, WeatherNotificationService.class);
context.startService((myIntent));
}
这是我在服务方法中输入的代码。
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(WeatherNotificationService.this.getApplicationContext());
ComponentName thisWidget = new ComponentName(getApplicationContext(),SafetyWidget.class);
int[] appWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget);
new CommonOpearation().showToast(getApplicationContext(), appWidgetIds.length+"");
for (int i = 0; i < appWidgetIds.length; i++) {
int appWidgetID = appWidgetIds[i];
DateFormat formatter = new SimpleDateFormat("EEE, dd/MM/yyyy");
formatter.setLenient(false);
Date a= new Date();
RemoteViews remoteViews = new RemoteViews(getApplicationContext().getPackageName(),R.layout.widget_layout);
remoteViews.setTextViewText(R.id.todayDate,formatter.format(a));
remoteViews.setTextViewText(R.id.psiTime,currentNowCast.getCurrentPsiObj().getDatenTime());
remoteViews.setTextViewText(R.id.psiTV,currentNowCast.getCurrentPsiObj().getPsi());
remoteViews.setTextViewText(R.id.textViewTodayTemp,currentNowCast.getCurrentTemp().getTemp());
remoteViews.setTextViewText(R.id.textViewNearestRegion, nowCastWeather.getNwo().getRegion());
remoteViews.setTextViewText(R.id.hospTV, contact.getName());
appWidgetManager.updateAppWidget(appWidgetID, remoteViews);
RemoteViews 函数是在 onUpdate 调用时显示相应的布局?这令人费解……