В моём приложении на андроид есть две активити,в первой я использую radiogroup,при выборе radiobutton она передаёт свой id в виде переменной string на вторую активити и сохраняет положение isChecked,это работает хорошо,но на второй активити я пытаюсь сохранить переданную с первой активити имя кнопки,н о при закрытии и открытии приложения переменная String не сохраняется(открывается приложение с Activity 2,но там где должно отображатся сохранённое имя string просто пусто(для отслеживания я поставил на кнопку отображение имени String,при выборе различных radiobutton она отображает правильные имена,но при запуске оно всегда arb,как будто оно не сохраняет последнее значение) Activity 1:
public void onCreate(Bundle savedInstanceState)
{super.onCreate(savedInstanceState);
setContentView(R.layout.menu);
intent = new Intent(Menu.this, MainActivity.class);
radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
LoadCheckPreferences();
radioGroup.setOnCheckedChangeListener(rad);
}
OnCheckedChangeListener rad = new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
but = (RadioButton) radioGroup.findViewById(checkedId);
int checkedIndex = radioGroup.indexOfChild(but);
SaveCheckPreferences("save_key", checkedIndex);
name =getResources().getResourceEntryName(checkedId);
intent.putExtra("sample_pack",name);
startActivity(intent);
finish();
}
};
private void SaveCheckPreferences(String key, int value) {
pref = getSharedPreferences("save_check", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putInt(key, value);
editor.apply();
}
private void LoadCheckPreferences() {
pref = getSharedPreferences("save_check", MODE_PRIVATE);
int savedRadioIndex = pref.getInt("save_key", 0);
but = (RadioButton) radioGroup.getChildAt(savedRadioIndex);
but.setChecked(true);}
}
Activity 2:
public void onCreate(Bundle savedInstanceState)
{super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button();
packName = getIntent().getStringExtra("sample_pack");
SavePackPreferences("save_pack",packName);
if(packName==null){
LoadPackPreferences();}
if(packName!=null){
for (int s1=0;s1<12;s1++){
samp[s1]=getResources().getIdentifier(packName+s1, "raw", getPackageName());
soundId[s1]=mSound.load(MainActivity.this,samp[s1],0);}}}
public void SavePackPreferences(String key, String value){
prefs = getSharedPreferences("save", MODE_PRIVATE);
SharedPreferences.Editor e= prefs.edit();
e.putString(key,value);
e.apply();
}
public void LoadPackPreferences(){
prefs = getSharedPreferences("save", MODE_PRIVATE);
packName=prefs.getString("save_pack", "arb"));
}
Правильно, при новом открытии приложения у вас в Activity 2
снова вызывается метод onCreate
и в нём вы стираете записанное ранее значение для ключа "sample_pack"
значением null
. И тогда в LoadPackPreferences()
в переменную packName
записывается значение по умолчанию - "arb"
. Попробуйте так:
packName = getIntent().getStringExtra("sample_pack");
if (!TextUtils.isEmpty(packName) {
SavePackPreferences("save_pack",packName);
}
LoadPackPreferences();
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Вроде получается определить значения полей, но как их суммировать и чтобы выводилось в результат - совсем не получаетсяЗаранее спасибо за помощь
начну сначала, потому что не уверен где проблема скрываетсяесть проект где страницы загружаются путем ajax в том числе и javascript'ы путем
Добрый день! Использую плагин для создания многоуровневой таблицы https://wwwjqueryscript