2

我决定为我的应用程序制作一个小部件,但我陷入了困境!

我想根据数组列表的大小在小部件上添加多个文本视图,但在搜索谷歌后我终于发现这是不可能的。

尽管我尝试了很多解决方法,但似乎没有任何效果!

所以我想请你帮忙!即使使用预定义的 xml 文件也可以这样做吗?怎么做?

所以我实际上正在寻找的是一段合适的代码,它演示了我上面描述的内容!或任何其他可以引导我解决问题的帮助!

在此先感谢您的帮助!

/撞!任何人 ?

4

4 回答 4

4

有可能的。你必须这样做:

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);
于 2015-05-10T21:00:49.070 回答
0

不,那是不可能的。

但是,您可以使用一个多行 TextView。

于 2014-04-23T22:42:15.167 回答
-1
  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
    }
于 2013-01-14T20:32:16.633 回答
-1

如果你把它放在你的 onCreate 中,这样的东西应该可以工作:

View myView  = (View)findViewById(R.id.Something);

for(element : array) {

    TextView myTV = new TextView(context);
    myTV.setText(array.getText());
    myView.addView(myTV);

}
于 2013-01-14T20:33:03.617 回答