我想以編程方式添加文本視圖控件到我的主屏幕小部件。在下面的示例中,我使用TextView填充了Linearlayout,但我應該如何在這裏使用RemoteViews?它只接受xml資源佈局作爲參數。添加TextViews到主屏幕小部件編程
public class MyWidget extends AppWidgetProvider {
public void onUpdate(Context _context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
LinearLayout l = new LinearLayout(_context);
for (int i = 0; i < 10; i++) {
TextView t = new TextView(_context);
t.setText("Hello");
l.addView(t);
}
}
}
所有教程只見明確填充RemoteViews與它預定義控件的值對象。我想添加控制programmaticaly。
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.my_widget);
views.setTextViewText(R.id.widget_control1, value1);
views.setTextViewText(R.id.widget_control2, value2);
謝謝,我編輯我的問題一點,我的觀點是,我應該如何處理RemoteViews,因爲它似乎管理部件佈局。如果我調用setContentView(l),我是否也應該在某處調用RemoteViews? – kkgery 2012-02-13 19:40:56
爲此目的,你不需要。 – 2012-02-13 19:51:36
它似乎沒有工作。 SetContentView是爲Activities類定義的,而不是爲AppWidgetProvider定義的。如果我從窗口小部件Activity類中調用它,它會創建一個新窗口(活動)並在其中填充控件。那麼,我需要從擴展AppWidgetProvider的類的Update方法中調用RemoteViews嗎?或者有一種方法可以以某種方式使用setcontentview? – kkgery 2012-02-14 14:18:58