[英]Dynamically add TextViews to Widget
我決定為我的應用程序制作一個小部件,但遇到了麻煩!
我想基於arrayList的大小在窗口小部件上添加多個textview,但是在搜索Google之后,我終於發現這是不可能的。
盡管我嘗試了很多解決方法,但似乎沒有任何效果!
所以我想請您幫忙! 即使使用預定義的xml文件也可以這樣做嗎?
因此,我實際上正在尋找的是一段適當的代碼,該代碼演示了我上面描述的內容! 或任何其他可以幫助我解決問題的幫助!
在此先感謝您的幫助!
/撲通! 任何人 ?
有可能的。 您必須這樣做:
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); // your widget layout xml
for (...){
RemoteViews view = new RemoteViews(context.getPackageName(), R.layout.empty_item); // xml with just a textview
view.setTextViewText(R.id.textviewId, "some dynamic text"); // id of the textview and some text
views.addView(R.id.layout, view); // id of the layout in widget.xml
}
appWidgetManager.updateAppWidget(appWidgetId, views);
不,那是不可能的。
但是,您可以使用一個多行TextView。
TextView[] tx = new TextView[10];
TableRow[] tr = new TableRow[10];
for(i=0; i<10; i++) {
tx[i] = new TextView(this);
tx[i].setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
tx[i].setText("Data")
tr[i] = new TableRow(this);
tr[i].setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
tr[i].addView(tx[i]);
// and then adding table row in tablelayout
}
如果將其粘貼在onCreate中,則類似的事情應該起作用:
View myView = (View)findViewById(R.id.Something);
for(element : array) {
TextView myTV = new TextView(context);
myTV.setText(array.getText());
myView.addView(myTV);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.