2017-08-10 3 views
0

Je souhaite utiliser recyclerview à l'intérieur du widget (comme le fait le widget GMail). J'ai créé la classe RecyclerAdapter, la disposition de recyclage et la disposition du widget avec LinearLayout en tant que vue racine. Tout semble aller bien, mais je ne sais pas comment accéder à ces mises en page à partir du widget où les vues distantes sont disponibles uniquement. Voici le code où je suis coincé:Android-Utilisation de RecyclerView à l'intérieur du widget

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); 
    } 

Merci. Je souhaite accéder à recyclerview et recycleradapter à partir de la méthode de mise à jour du widget. En activité régulière, je l'aurais fait comme ceci:

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); 

Mais je ne peux pas le faire à l'intérieur de cette méthode contexte de la cause ne me laisse pas utiliser findViewById() ou quoi que ce soit.

== == Modifier

Bon, maintenant que je devrais utiliser ListView. Mais je ne sais toujours pas comment accéder à ma ListView dans la présentation du widget à partir de la méthode onUpdate?

+0

Votre question est assez vague à mon avis, un peu d'explication pourrait aider certains d'entre nous; à quelles dispositions voulez-vous accéder? –

Répondre

2

Selon ce App Widgets documentation, RecyclerView ne figure pas parmi les vues prises en charge lors de l'utilisation de vues distantes. Je suis sûr que vous devriez utiliser ListView à la place, et que Gmail et d'autres widgets similaires le font.

+0

Oh, maintenant je vois. Totalement oublié à propos de ListViews. Je vous remercie! – Cakeee

+0

Eh bien, maintenant je ne sais pas comment accéder à ListView dans la mise en page de mon widget: D – Cakeee

+0

Jetez un oeil à ce fil https://stackoverflow.com/questions/6093256/implement-listview-in-android-widgets – mis3k