2011-11-01 111 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); 
}