Как я могу получить свои предпочтения в другом классе, кроме основного (Android)? - PullRequest
0 голосов
/ 29 ноября 2010

Мой основной класс выглядит следующим образом:

public class Soundboard extends Activity 
{ 
    SharedPreferences preferences;

 @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 


     // Initialize preferences
        preferences = PreferenceManager.getDefaultSharedPreferences(this);

}

private void loadButtonText() {
        startPlayerBtn.setText(preferences.getString("buttontext1", "n/a"));

}

Это работает, но я немного изменил свой код с помощью ButtonAdapter (дополнительный класс), но не могу найти там свои настройки,Если вы посмотрите по ссылке У меня есть массив, который выглядит следующим образом в ButtonAdapter.java:

 public String[] filesnames = {
             "Text button 1",
            "Text button 2",  
            "Text button 3"
            };

Как я могу, но мои настройки в массив?Что-то вроде этого не работает:

     public String[] filesnames = {
            preferences.getString("buttontext1", "n/a",
            preferences.getString("buttontext2", "n/a",  
            preferences.getString("buttontext3", "n/a"
            };

Пожалуйста, помогите мне, я действительно застрял.

Ответы [ 2 ]

1 голос
/ 30 ноября 2010

Измените ваш конструктор так, чтобы он выглядел так:

public ButtonAdapter(Context c) {  
    preferences = PreferenceManager.getDefaultSharedPreferences(c);
    filenames = new String[] {
        preferences.getString("buttontext1", "n/a"),
        preferences.getString("buttontext2", "n/a")
    }
}

А затем измените способ объявления массива имен файлов в конце класса, чтобы он выглядел следующим образом:

public String[] filenames;
0 голосов
/ 29 ноября 2010

То, что ожидает getDefaultSharedPreferences, является Context объектом. Итак, простой способ сделать это в вашем случае, если вы следовали учебнику, это:

preferences = PreferenceManager.getDefaultSharedPreferences(mContext);
...