Я только что узнал об Android, и здесь у меня есть домашнее задание.Я пытался создать виджет стека, который обращается к данным из комнаты базы данных, здесь я пытаюсь получить к нему доступ, но данные не отображаются, я запутался в решении и до сих пор не понимаю
private Context context;
private List<MovieEntity> list = new ArrayList<>();
public StackRemoteViewsFactory(Context context) {
this.context = context;
}
@Override
public void onCreate() {
}
@Override
public void onDataSetChanged() {
new AsyncTask<Context, Void, List<MovieEntity>>() {
@Override
protected List<MovieEntity> doInBackground(Context... contexts) {
AppDatabase database = AppDatabase.getInstance(context);
list = database.favoriteDao().getMovies();
return list;
}
@Override
protected void onPostExecute(List<MovieEntity> movieEntities) {
super.onPostExecute(movieEntities);
}
}.execute(context);
}
@Override
public RemoteViews getViewAt(int position) {
RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.item_widget);
for (MovieEntity movieEntity : list) {
Bitmap bmp = null;
try {
bmp = Glide.with(context)
.asBitmap()
.load("https://image.tmdb.org/t/p/w300_and_h450_bestv2" + movieEntity.getPosterPath())
.into(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL).get();
} catch (Exception e) {
Log.d("ERROR", "error");
}
rv.setTextViewText(R.id.txt_item_title, movieEntity.getTitle());
rv.setImageViewBitmap(R.id.image_item_poster, bmp);
}
return rv;
}
@Override
public int getViewTypeCount() {
return 1;
}