android,从另一个活动调用共享首选项

时间:2014-04-12 12:48:38

标签: android

我正在制作一种测验应用,我使用共享的首字母来指示你所处的级别。现在我在每个单独的活动中使用了共享的pref,但是我想为保存功能做一个特殊的活动我可以从我的所有活动中调用的共享首选项。 这是我做的:

package com.flag.fun;
import android.app.*;
import android.content.*;
import android.os.*;
import android.view.*;
import android.widget.*;

public class lvl01Activity extends Activity   {
EditText input;
SharedPreferences someData;
public int n;
public static String fileName = "myfile";

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

    someData = getSharedPreferences(fileName, 0);

    input = (EditText) findViewById(R.id.lvl01input);
    Button lvl01 = (Button) findViewById(R.id.lvl01check);
     lvl01.setOnClickListener(new View.OnClickListener(){
            public void onClick(View v){
                String answer = input.getText().toString();
                if(answer.contentEquals("canada") || answer.contentEquals("Canada")){
                    n = 2;
                    SharedPreferences.Editor editor = someData.edit();
                    editor.putInt("key", n);
                    editor.commit();
                    Intent lvl01Intent = new Intent("com.fun.flag.LVL01CHECK");
                    startActivity(lvl01Intent);
                }
            }
        });
}
    }

共享的prefs部分可以是一个apprt类吗? 如果是,请告诉我如何调用它?

2 个答案:

答案 0 :(得分:0)

我将创建一个类来处理对共享首选项文件的所有读取和写入,然后在每个活动中创建该类的实例。

public class PersistData {
...
...
..
}

public class MainActivity extends Activity {

private PersistData persistData;

...
...
..




persistData = new PersistData(this);

someObject = persistData.readData();

答案 1 :(得分:0)

如果您希望单点管理保存结果并管理n#34;得分"使用bindService。您将能够绑定所有活动。