Выберите данные базы данных в виджет приложения того же приложения

48
3

Я разрабатываю приложение с виджетами приложений, поэтому они оба используют одну и ту же базу данных. Виджет приложения, который я разрабатываю, является простым, он состоит из списка, я хочу заполнить этот список с сохраненными именами данных из моей основной таблицы базы данных и в основном это. Но теперь проблема заключается в том, что мой класс DatabaseHelper возвращает пустой список в RemoteViewsFactory OnCreate:

class ListProvider implements RemoteViewsService.RemoteViewsFactory {
private ArrayList<Release> releases = new ArrayList();
private Context context = null;
private int appWidgetId;

public ListProvider(Context context, Intent intent) {
this.context = context;
this.appWidgetId = intent.getIntExtra(
AppWidgetManager.EXTRA_APPWIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID);
}

@Override
public void onCreate() {
DatabaseHelper databaseHelper = new DatabaseHelper(context);
this.releases = databaseHelper.getAllReleases();
}

@Override
public void onDataSetChanged() {

}

@Override
public void onDestroy() {

}

@Override
public int getCount() {
return releases.size();
}

@Override
public RemoteViews getLoadingView() {
return null;
}

@Override
public int getViewTypeCount() {
return 1;
}

@Override
public long getItemId(int position) {
return position;
}

@Override
public boolean hasStableIds() {
return true;
}

/*
* Similar to getView of Adapter where instead of View
* we return RemoteViews
*/
@Override
public RemoteViews getViewAt(int position) {
RemoteViews row= new RemoteViews(context.getPackageName(), R.layout.row);

row.setTextViewText(android.R.id.text1, releases.get(position).movie.name);

Intent i = new Intent();
Bundle extras = new Bundle();

// extras.putString(WidgetProvider.EXTRA_WORD, items[position]);
extras.putInt(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
i.putExtras(extras);
row.setOnClickFillInIntent(android.R.id.text1, i);

return(row);
}
}

Ничего не видно из моего виджета приложения, как я могу это исправить?

Я также проверил этот код с моим списком выпусков, уже заполненным некоторыми данными, и виджет приложения работает отлично. Поэтому я знаю, что процесс печати работает и что мой метод databasehelper getAllReleases() возвращает пустой список, хотя я знаю, что факт getAllReleases() работает, потому что я использую его в своем основном приложении

спросил(а) 2018-01-29T07:59:00+03:00 2 года назад
0
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема