我决定为我的应用程序制作一个小部件,但我陷入了困境!
我想根据数组列表的大小在小部件上添加多个文本视图,但在搜索谷歌后我终于发现这是不可能的。
尽管我尝试了很多解决方法,但似乎没有任何效果!
所以我想请你帮忙!即使使用预定义的 xml 文件也可以这样做吗?怎么做?
所以我实际上正在寻找的是一段合适的代码,它演示了我上面描述的内容!或任何其他可以引导我解决问题的帮助!
在此先感谢您的帮助!
/撞!任何人 ?
我决定为我的应用程序制作一个小部件,但我陷入了困境!
我想根据数组列表的大小在小部件上添加多个文本视图,但在搜索谷歌后我终于发现这是不可能的。
尽管我尝试了很多解决方法,但似乎没有任何效果!
所以我想请你帮忙!即使使用预定义的 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);
}