2011-07-20 8 views
0

私は、ModifyInfoというAcitvityで設定されたSharedPreferencesからデータを取得する簡単なウィジェットを構築していますが、それを行う方法はわかりません。以下のコードは、私を逃れる何らかの理由で動作しません。Android AppウィジェットからSharedPreferencesを取得する

エラー:静的でないメソッドgetSharedPreferences(String、int)をContextWrapperタイプから静的に参照することはできません。あなたは両方の場所(ウィジェットとModifyInfo活性の両方)に同じ名前でSharedPreferencesを開く

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); 
} 
} 

答えて

0
  1. チェック。上の例では、名前は "Monday"です。
  2. インポートandroid.content.Contextとコードはまだコンパイルされませんが、エラーの
+0

おかげで、問題の一定のその部分を取り除くためにContext.MODE_PRIVATEを使用しています。 Error:非静的メソッドgetSharedPreferences(String、int)への静的参照をContextWrapperタイプから作成できません。 –

+0

私はそれを得て気にしない。最初にContextオブジェクトを作成しなければなりませんでした。 –

関連する問題