Android小部件更新现有视图

时间:2011-11-01 10:02:53

标签: android

我正在开发一个Android小部件。我有一个来自我的小部件的XML的初始布局。

但我发出了一个webservice调用,需要根据webservice的响应更新视图。

public void changeTheApartmentTo(Context context, int position){
    remoteViews.setTextViewText(R.id.header_text, objj.get(position).getDistance());
    remoteViews.setTextViewText(R.id.text_name_row, objj.get(position).getName());
    remoteViews.setTextViewText(R.id.text_address_row, objj.get(position).getStreet());
    remoteViews.setTextViewText(R.id.text_state_row, objj.get(position).getState());
    remoteViews.setTextViewText(R.id.text_price_row, objj.get(position).getPrice());
    remoteViews.setTextViewText(R.id.text_bedbath_row, objj.get(position).getBathrooms());
    remoteViews.setImageViewBitmap(R.id.img_apartment, ImageLoader.getInstance().get(objj.elementAt(position).getImageUrl()));

    appWidgetManager.updateAppWidget(thisWidget, remoteViews);
}

以上是我在public class HelloWidget extends AppWidgetProvider写的函数 类。

当我更改视图时,会导致空指针错误。

1 个答案:

答案 0 :(得分:2)

你在哪里称这种方法?告诉我们你是如何得到这个例外的?

您可以使用以下内容:

public static void updateWidgets(Context ctx) {
    RemoteViews views = new RemoteViews(ctx.getPackageName(), R.layout.yourAppWidgetLayout);

    //Do your updating...

    ComponentName appWidget = new ComponentName(ctx, YourAppWidget.class);
    AppWidgetManager awm = AppWidgetManager.getInstance(ctx);
    awm.updateAppWidget(appWidget, views);
}