Получение SharedPreferences из виджета приложения Android - PullRequest
0 голосов
/ 20 июля 2011

Я создаю простой виджет, который получает данные из набора SharedPreferences в Acitvity под названием ModifyInfo, но я не могу понять, как это сделать. Код ниже не работает по какой-то причине, которая ускользает от меня.

Ошибка: невозможно создать статическую ссылку на нестатический метод getSharedPreferences (String, int) из типа ContextWrapper.

public class WatchWidget extends AppWidgetProvider {

@Override
public void onUpdate( Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds )
{
    RemoteViews remoteViews = new RemoteViews( context.getPackageName(), R.layout.widget_layout );
    ComponentName watchWidget = new ComponentName( context, WatchWidget.class );

    switch (Calendar.DAY_OF_WEEK){
    case Calendar.MONDAY:
        SharedPreferences settings = ModifyInfo.getSharedPreferences("Monday", Context.MODE_PRIVATE);
        remoteViews.setTextViewText( R.id.widText, settings.getString("Monday", ""));
        break;
    default:
        break;
    }

    appWidgetManager.updateAppWidget( watchWidget, remoteViews );
}
}

1 Ответ

0 голосов
/ 20 июля 2011
  1. Убедитесь, что вы открываете SharedPreferences под одним и тем же именем в обоих местах (как виджет, так и действие ModifyInfo).В приведенном выше примере имя «понедельник».
  2. Импорт android.content.Context и использование Context.MODE_PRIVATE, чтобы избавиться от ошибки
...