Android AppWidget:将自定义视图添加到Widget布局



我想在我的Widget中显示一些TextView和EditView的列表。

我使用以下代码生成TextView和EditView 的列表

public LinearLayout getMainBodyLayout(List<Item> data) {
        LinearLayout mainLL = new LinearLayout(context);
        mainLL.setOrientation(LinearLayout.VERTICAL);
        for (int i = 0; i < data.size(); i++) {
            Item ritem = data.get(i);
            LinearLayout item = new LinearLayout(context);
            TextView name = new TextView(context);
            EditText nos = new EditText(context);
            name.setText(ritem.getName());
            nos.setText(ritem.getNo());
            item.addView(name);
            item.addView(nos);
            mainLL.addView(item);
        }
        return mainLL;
    }
public void updateWidget(LinearLayout ll) {
        AppWidgetManager manager = AppWidgetManager.getInstance(context);
        ComponentName thisWidget = new ComponentName(context, MainWidget.class);
        RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
                R.layout.widget_my);
        remoteViews.setTextViewText(R.id.title, title);
        remoteViews.setTextViewText(R.id.widget_error, errorMsg);
// I ve to add ll to this remoteViews

        manager.updateAppWidget(thisWidget, remoteViews);
    }

我必须将返回的LinearLayout添加到我的小部件LinearLayout中。请给我最好的方法。

尝试在XMl中制作Layout并在Java文件中设置其值。。。和使用方法

          RemoteViews.setTextviewText(id,string);

试试这个方法,因为我已经在我的小部件中使用了它

        private class ABC extends TimerTask {
         RemoteViews remoteViews;
         AppWidgetManager appWidgetManager;
         ComponentName thisWidget;
         public ABC(Context context, final AppWidgetManager appWidgetManager) {
         this.appWidgetManager = appWidgetManager;

         remoteViews = new RemoteViews(context.getPackageName(), R.layout.main);
         thisWidget = new ComponentName(context, WidgetAnimate.class);
          }
         public void run() {
           String k= XMLfunctions.data1();   
           remoteViews.setTextViewText(R.id.tv12,k);
           appWidgetManager.updateAppWidget(thisWidget, remoteViews);
         }

为您提供完整的代码会更大。我给你一些代码示例,你可以根据需要进行优化。

Android ListView示例。

这也是一个很好的教程开始

Android ListView教程

如果你想优化你的列表,你可以看看这个教程。

列表视图提示&技巧#3:创建花式列表视图

最新更新