1

我创建了共享偏好活动,并保存了 2 个字符串...

    public class sharedprefs extends Activity {


    EditText email;
    EditText lozinka;
    Button btnEmail;
    Button btnLozinka;
    Button btnPovratak;
    TextView email2; 
    TextView lozinka2;


    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sharedpref);

        email2 = (TextView)findViewById(R.id.textView4);
        lozinka2 = (TextView)findViewById(R.id.textView5);

        email = (EditText)findViewById(R.id.editText1);
        lozinka = (EditText)findViewById(R.id.editText2);

        btnEmail = (Button) findViewById(R.id.button1);
        btnLozinka = (Button) findViewById(R.id.button2);
        btnPovratak = (Button) findViewById(R.id.button3);

        LoadPreferences();

        btnEmail.setOnClickListener(new View.OnClickListener() 
        {
            public void onClick(View v) 
            {   

                SavePreferences("EMAIL", email.getText().toString());
                LoadPreferences();  


            }
        });

        btnLozinka.setOnClickListener(new View.OnClickListener() 
        {
            public void onClick(View v) 
            {   

                SavePreferences("LOZINKA", lozinka.getText().toString());
                LoadPreferences();


            }
        });

        btnPovratak.setOnClickListener(new View.OnClickListener() 
        {
            public void onClick(View v) 
            {   

                finish();


            }
        });
    }

    private void SavePreferences(String key, String value){
        SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString(key, value);
        editor.commit();
       }

       private void LoadPreferences(){
        SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
        String stremail = sharedPreferences.getString("EMAIL", "");
        String strlozinka = sharedPreferences.getString("LOZINKA", "");
        email2.setText(stremail);
        lozinka2.setText(strlozinka);
       }


}

我对其进行了测试并使用 textview 显示它们......当我退出并重新进入我的应用程序时,它们仍然显示。现在我需要这两个字符串在我的主要活动中与 httpClient 一起使用。问题是,我不知道如何将它们加载到我的主要活动中,我需要做什么(在主要活动中声明)才能使其工作?

4

2 回答 2

3

查看Android 开发者文档中关于跨多个活动处理 SharedPreferences 的说明。这也包含在另一个答案中。

访问 SharedPreferences 的推荐方法是:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);

所以在你的情况下,你可以把它写成:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);

这将在 PreferenceActivity 和您的正常主 Activity 中起作用。

于 2012-09-27T01:02:28.710 回答
2

您需要调用相同的方法 LoadPreferences() 您需要在您的 Main Activity (或您想要此 SharedPreference 的任何其他活动中进行编码)。

private void LoadPreferences()
{
        SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
        String stremail = sharedPreferences.getString("EMAIL", "");
        String strlozinka = sharedPreferences.getString("LOZINKA", "");
        // Strings variable are ready with the values, you can assign them to other component if you want
}
于 2012-09-27T00:44:49.867 回答