Android:共享首选项无法在共享首选项中存储值

时间:2016-10-31 09:49:47

标签: android sharedpreferences android-sharedpreferences

我目前正在一个项目中工作,我必须根据按下的小部件更新共享首选项,如果用户按下小部件共享首选项将存储“关闭”其他明智的“开启”。

另一方面,共享首选项的相同代码将其值存储在“活动和服务”中,但不使用小部件

以下是我的代码片段:

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


        }
    }

当我点击小部件图片正在更改 if if else block完美运行 共享偏好 不会t存储值加上 共享首选项 的相同代码在 服务 中工作Activites

1 个答案:

答案 0 :(得分:0)

使用person

此方法适用于所有服务,活动,小部件等。