簡體   English   中英

動態將TextViews添加到小部件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM