Я пытаюсь заставить мой виджет получать базу данных контента, но он не работает: / И я действительно не понимаю, что не так

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); 
         } 
     } 
0
Andrus 14 Апр 2011 в 14:23
1
Вы не написали в чем ваша проблема. Пожалуйста, определите, что "это не работает"... предоставьте несколько журналов из LogCat и т. д....
 – 
Selvin
14 Апр 2011 в 14:40

1 ответ

Вы не сказали, какая часть «не работает», но вы передаете неправильное значение в updateAppWidget. Замените это:

appWidgetManager.updateAppWidget(appWidgetIds, updateViews);

С этим:

for (int i=0;i<appWidgetIds.length;i++){
    appWidgetManager.updateAppWidget(appWidgetIds[i], updateViews);
}

Вы передаете массив int, когда вам нужно передать каждый элемент массива по отдельности.

1
dave.c 14 Апр 2011 в 14:50