Я пытаюсь заставить мой виджет получать базу данных контента, но он не работает: / И я действительно не понимаю, что не так
public class Widget extends AppWidgetProvider {
private databaseHelper dbHelper;
SQLiteDatabase db = dbHelper.getReadableDatabase();
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
Cursor cursor = db.rawQuery("SELECT column01 FROM my_table WHERE column02=1", null);
cursor.moveToPosition(0);
String str0 = cursor.getString(0);
RemoteViews updateViews = new RemoteViews(
context.getPackageName(),R.layout.widget);
updateViews.setTextViewText(R.id.text, str0);
appWidgetManager.updateAppWidget(appWidgetIds, updateViews);
}
}
1 ответ
Вы не сказали, какая часть «не работает», но вы передаете неправильное значение в updateAppWidget
. Замените это:
appWidgetManager.updateAppWidget(appWidgetIds, updateViews);
С этим:
for (int i=0;i<appWidgetIds.length;i++){
appWidgetManager.updateAppWidget(appWidgetIds[i], updateViews);
}
Вы передаете массив int
, когда вам нужно передать каждый элемент массива по отдельности.
Похожие вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.