Я пытаюсь получить доступ к SharedPreferences
значениям в неактивном классе.Preferences
определены и сохранены во фрагменте.Есть три значения, которые я получаю из панели поиска, по одному для каждого красного, зеленого и синего цвета.Панель поиска переходит от 0 до 255 и SharedPreferences
работают, значение сохраняется при выходе из приложения.
Я пытаюсь получить значения в другом классе и затем отправить их с запросом POST, но я 'Я уверен, как получить их.Вы можете мне помочь?
Фрагмент:
public class SettingsFragment extends Fragment {
public static SharedPreferences preferences;
public static SharedPreferences.Editor editor;
public static final String RED_PROG = "RED_BAR";
public static int redValue;
public static final String GREEN_PROG = "GREEN_BAR";
public static int greenValue;
public static final String BLUE_PROG = "BLUE_BAR";
public static int blueValue;
public static final String DIMMER_PROG = "DIMMER_BAR";
public static int dimmerValue;
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_settings, container, false);
preferences = getActivity().getSharedPreferences("pref", Context.MODE_PRIVATE);
getRedBar();
getGreenBar();
getBlueBar();
return view;
}
public void onResume() {
super.onResume();
redBar.setProgress(preferences.getInt(RED_PROG,0));
greenBar.setProgress(preferences.getInt(GREEN_PROG,0));
blueBar.setProgress(preferences.getInt(BLUE_PROG,0));
dimmerBar.setProgress(preferences.getInt(DIMMER_PROG,0));
}
public void onPause() {
super.onPause();
editor = preferences.edit();
redValue = redBar.getProgress();
greenValue = greenBar.getProgress();
blueValue = blueBar.getProgress();
dimmerValue = dimmerBar.getProgress();
editor.putInt(RED_PROG, redValue);
editor.putInt(GREEN_PROG, greenValue);
editor.putInt(BLUE_PROG, blueValue);
editor.putInt(DIMMER_PROG, dimmerValue);
editor.commit();
}
}
Другой класс (значения цвета должны быть в RgbCapability
с нулями):
public class ContextCommunication {
public static void sendPref(){
RgbCapability rgbCapability = new RgbCapability(0,0,0);
Light light = new Light(true,rgbCapability, 0);
Post post = new Post("Zagreb", light);
Call<Post> call = MainActivity.apiService.savePost(post);
textViewResult.setText(post.toString());
call.enqueue(new Callback<Post>() {
@Override
public void onResponse(Call<Post> call, Response<Post> response) {
if (!response.isSuccessful()) {
textViewResult.setText(response.code());
return;
}
Post postResponse = response.body();
String content = "";
content += "Code: " + response.code() + "\n";
content += "location: " + postResponse.getLocation() + "\n";
content += "light: " + postResponse.getLight() + "\n";
//textViewResult.setText(content);
}
@Override
public void onFailure(Call<Post> call, Throwable t) {
textViewResult.setText(t.getMessage());
}
});
}
}