2011-11-01 57 views
0

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

但我发出了一个web服务调用,需要根据来自web服务的响应更新视图。

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 类的功能。

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

回答

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); 
}