我想在我的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。 请告诉我最好的方法。
答案 0 :(得分:0)
尝试在XMl中进行布局并在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);
}
答案 1 :(得分:0)
为您提供完整的代码将会更大。我给你一些代码示例,你可以根据需要优化它。
这个也是一个很好的教程,从
开始如果您想要优化列表,可以看到本教程。