2016-10-31 16 views
0

私は現在、ウィジェットを押すと、共有設定を更新する必要があるプロジェクトで作業しています。共有設定では、 。Android:共有設定が共有設定に値を保存できません

Widget.class

:他の側に

、共有設定の同じコードは、アクティビティとサービスにその値を格納するが、ウィジェット

が続きで作業されていませんが、私のコードスニペットです

@Override 
    public void onReceive(Context context, Intent intent) { 
     // TODO Auto-generated method stub 
     super.onReceive(context, intent); 
     Toast.makeText(context,"Clicked",Toast.LENGTH_SHORT).show(); 

     if (SYNC_CLICKED.equals(intent.getAction())) { 

      AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); 

      RemoteViews remoteViews; 
      ComponentName watchWidget; 

      remoteViews = new RemoteViews(context.getPackageName(), R.layout.activity_main3); 
      watchWidget = new ComponentName(context, Main3Activity.class); 
      SharedPreferences prefs = context.getSharedPreferences("Settings", 0); 

      //battey_stats =mpref.getString("on_off", "15"); 
      Toast.makeText(context,app,Toast.LENGTH_SHORT).show(); 

      if(app.equals("OFF")) 
      { 
       app="ON"; 
       SharedPreferences set =context. getSharedPreferences("Settings", 0); // 0 - for private mode 
       SharedPreferences.Editor editor = set.edit(); 
       editor.putString("on_off", "OFF"); 
       editor.commit(); 
       remoteViews.setImageViewResource(R.id.button, R.drawable.unchecked_box); 


       } 

      else 
      { 
       Toast.makeText(context,"ONN",Toast.LENGTH_SHORT).show(); 
       app="OFF"; 
       SharedPreferences set =context. getSharedPreferences("Settings", 0); // 0 - for private mode 
       SharedPreferences.Editor editor = set.edit(); 
       editor.putString("on_off", "OFF"); 
       editor.commit(); 
       remoteViews.setImageViewResource(R.id.button, R.drawable.icon); 
      } 
      // remoteViews.setTextViewText(R.id.button, "TESTING"); 
      appWidgetManager.updateAppWidget(watchWidget, remoteViews); 


     } 
    } 

ウィジェットをクリックすると画像が変化しますブロックが完全に動作する場合しかし共有設定は、値を格納しませんプラス共有設定の同じコードがサービスのactivites

答えて

0

使用settings = PreferenceManager.getDefaultSharedPreferences(context);

この中で働いていますメソッドは、すべてのサービス、アクティビティ、ウィジェットなどに対して機能します。

+0

なぜ共有設定が動作しないのですか? –

+0

あなたのバリアントは、環境設定が使用されるクラスに依存するため、 – Vyacheslav

+0

私が書いたすべてのアプリケーションの使用の設定を共有したい場合は – Vyacheslav

関連する問題