如何在主要(Android)之外的其他课程中获取我的首选项?

时间:2010-11-29 19:26:26

标签: android button preferences adapter

我的主要班级看起来像这样:

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 个答案:

答案 0 :(得分:1)

将构造函数更改为:

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

然后改变你在类末尾声明文件名数组的方式如下:

public String[] filenames;

答案 1 :(得分:0)

getDefaultSharedPreferences等待的是Context个对象。因此,如果您遵循本教程,那么在您的情况下执行此操作的简便方法是:

preferences = PreferenceManager.getDefaultSharedPreferences(mContext);