Не могу разобраться, почему не создается файл в папке пакета приложения с данными, которые я передаю.
Вот код:
public class SettingsActivity extends Fragment implements View.OnClickListener, View.OnFocusChangeListener {
private TextInputLayout mUsernameLayout, currentIpLayout, prefLayout;
private EditText mUsername, currentIp, pref;
private Button changeIp, saveSettings;
private View view;
private SharedPreferences mSettings;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.activity_settings, container, false);
mSettings = getActivity().getSharedPreferences(BasicSettings.APP_Preferences, Context.MODE_PRIVATE);
mUsernameLayout = (TextInputLayout) view.findViewById(R.id.username_layout);
currentIpLayout = (TextInputLayout) view.findViewById(R.id.ipdb_layout);
prefLayout = (TextInputLayout) view.findViewById(R.id.pref_layout);
currentIp = (EditText) view.findViewById(R.id.edit_text_ipCDB);
mUsername = (EditText) view.findViewById(R.id.edit_text_username);
pref = (EditText) view.findViewById(R.id.edit_text_pref);
changeIp = (Button) view.findViewById(R.id.changeIp);
saveSettings = (Button) view.findViewById(R.id.saveSettings);
changeIp.setOnClickListener(this);
saveSettings.setOnClickListener(this);
if(mSettings.contains(BasicSettings.APP_Preferences)){
mUsername.setText(mSettings.getString(BasicSettings.APP_Preferences_UserName, ""));
currentIp.setText(mSettings.getString(BasicSettings.APP_Preferences_IPDB, BasicSettings.RemoteDB_Adress));
pref.setText(mSettings.getString (BasicSettings.APP_Preferences_Pref, ""));
}
return view;
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.saveSettings:
onClickSaveSettings();
break;
}
}
private void onClickSaveSettings(){
SharedPreferences.Editor editor = mSettings.edit();
editor.putString(BasicSettings.APP_Preferences_UserName, mUsername.getText().toString());
editor.apply();
Toast.makeText(getActivity().getApplicationContext(), "Данные были успешно сохранены", Toast.LENGTH_SHORT).show();
}
}
Дело в том, что сообщений об ошибках нет, но файл с данными не появляется, как следствие они не считываются. Что я не так делаю?
Метод contains проверяет наличие ключа, а не файла. А ключа с именем BasicSettings.APP_Preferences у вас скорее всего нет.
Попробуйте так:
if(mSettings.contains(BasicSettings.APP_Preferences_UserName)){
...
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники