我想在小部件中使用recyclerview(就像GMail小部件一样)。我已经使用LinearLayout创建了RecyclerAdapter类,recycleritem布局和窗口小部件布局作为根视图。一切似乎都很好,但我不知道如何从远程视图可用的小部件访问这些布局。这是我遇到的代码:
static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
int appWidgetId) {
// Construct the RemoteViews object
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.schedule_today_widget);
ScheduleActivity scheduleActivity = new ScheduleActivity();
Calendar calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_WEEK);
int week = scheduleActivity.currentWeek(context);
ArrayList<Lesson> mDataSet = scheduleActivity.getDataSet(week, day, context);
mRecyclerView = (RecyclerView) views ...
// Instruct the widget manager to update the widget
appWidgetManager.updateAppWidget(appWidgetId, views);
}
谢谢。
==编辑==
我想从widget的更新方法中访问recyclerview和recycleradapter。在常规活动中,我已经这样做了:
mRecyclerView = (RecyclerView) findViewById(R.id.schedule_monday_card);
mRecyclerView.setHasFixedSize(true);
mLayoutManager = new LinearLayoutManager(getContext());
mRecyclerView.setLayoutManager(mLayoutManager);
mAdapter = new ScheduleRecyclerAdapter(myDatasetMonday, context);
mRecyclerView.setAdapter(mAdapter);
但我无法在此方法中执行此操作,因为上下文不允许我使用findViewById()或其他任何内容。
==编辑==
好的,现在我应该使用ListView。但我仍然不知道如何从onUpdate方法访问widget的布局中的ListView?
答案 0 :(得分:2)
根据此App Widgets documentation,使用远程视图时,RecyclerView不在受支持的视图中。我很确定你应该使用ListView,而Gmail和其他类似的小部件也是如此。