После этого:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
нужно добавить:
SharedPreferences.Editor editor = prefs.edit();
Тогда вместо
prefs.edit().putString("voiceAlias", voiceData[2*a]);
prefs.edit().commit();
использование
editor.putString("voiceAlias", voiceData[2*a]);
editor.commit();
Документация по edit () гласит:
Создать новый редактор для этих предпочтений
Это означает, что каждый раз, когда вы вызываете prefs.edit()
, он создает новый объект Editor
, поэтому, когда вы помещаете строку с prefs.edit().putString(...)
и когда вы фиксируете с prefs.edit().commit()
, вы ссылаетесь на два новых, различных Editor
объекты.
Полагаю, вы тоже можете сделать prefs.edit().putString(...).commit()
, но я не уверен, возможно ли это.