簡體   English   中英

Android->在主要活動中加載共享的首選項

[英]Android -> Load shared preferences in main activity

我創建了共享首選項活動,並且保存了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一起使用。 問題是,我不知道如何在我的主要活動中加載它們,並且我需要做些什么(在主要活動中聲明)才能使其正常工作?

請查看Android Developers文檔上說明,以處理多個活動中的SharedPreferences。 另一個答案涵蓋了這一點。

推薦的訪問SharedPreferences的方法是:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);

因此,您可以將其編寫為:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);

這將在PreferenceActivity和正常的主Activity中都起作用。

您需要調用與在Main Activity(或任何其他需要此SharedPreference的活動)中進行編碼的方法相同的LoadPreferences()方法。

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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM