2010-06-11 70 views
1

我們如何更新AppWidgetProvider的onReceive方法上的主屏幕小部件的視圖?更新Android主屏幕TextView

我想更新我的主屏幕小部件的TextView,但似乎我無法訪問onReceive方法上的我的AppWidgetProvider TextView。

這裏是一個示例代碼我的onReceive

public void onReceive(Context context,Intent intent) { 
    final String action = intent.getAction(); 
    if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(action)) { 
     final int appWidgetId = intent.getExtras().getInt(
     AppWidgetManager.EXTRA_APPWIDGET_ID, 
     AppWidgetManager.INVALID_APPWIDGET_ID); 
     if (appWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID) { 
      this.onDeleted(context, new int[] { appWidgetId }); 
     } 
    } else { 
     if (intent.getAction().equals(ACTION_WIDGET_RECEIVER)) { 
      String msg = "null"; 
      try { 
       msg = intent.getStringExtra("msg"); 
      } catch (NullPointerException e) { 

      } 


      Toast.makeText(context, msg, Toast.LENGTH_SHORT).show(); 
      // code for gathering the text to update the TextView 


      } 

    } 
     super.onReceive(context, intent); 
} 

回答

2

無法更新的TextView。您只能構建完整的新窗口小部件佈局(RemoteViews)並將其發佈到主屏幕。

+0

有沒有辦法,其中如果我們點擊主屏幕上的按鈕,它會更新其中的TextView? – user364556 2010-06-12 07:56:34

+0

不幸的是沒有。只發送意圖廣播接收器並重建新的RemoteViews。 – Fedor 2010-06-12 08:35:27