2012-05-14 15 views
0

我是android開發新手。有沒有辦法從另一個包中擴展類?我試圖從另一個包中獲取共享首選項,儘管我可以訪問同一個包中的類之間的共享首選項。但是,在不同的包中,我不知道如何執行editer.commit()或編輯另一個包中的共享首選項。請幫忙。另一個包中的共享首選項

回答

-2

試試這個代碼

把一個字符串sharedpreference

SharedPreferences USERNAME_and_PASSWORD; 
      SharedPreferences.Editor editor; 

USERNAME_and_PASSWORD = getSharedPreferences(Shared_preference_key, 
       MODE_PRIVATE); 
     editor = USERNAME_and_PASSWORD.edit(); 
       editor.putString(user_name_key, userName); 
       editor.commit(); 

從共享偏好得到一個字符串

SharedPreferences USERNAME_and_PASSWORD; 
USERNAME_and_PASSWORD = getSharedPreferences(Shared_preference_key, 
        MODE_PRIVATE); 
    USERNAME_and_PASSWORD = getSharedPreferences(Shared_preference_key, 
         MODE_PRIVATE); 
    String Return_Password = USERNAME_and_PASSWORD.getString(pass_word_key, 
        "Guest"); 
+1

這些用於檢索和編輯同一個包中的共享首選項,我試圖做的是從另一個包中的類訪問sharedpreferences。例如,如果我使用代碼「USERNAME_and_PASSWORD = getSharedPreferences(Shared_preference_key, MODE_PRIVATE)」獲取共享首選項;「來自另一個包中的另一個類,它將無法檢測變量「Shared_preference_key」,因此它不起作用。有沒有一種方法可以從其他軟件包的共享首選項訪問? – Amblll

+0

我們可以通過不同的package.add這些行之前訪問共享prefernce String Shared_preference_key =「Shared Preference」; SharedPreferences USERNAME_and_PASSWORD; USERNAME_and_PASSWORD = getSharedPreferences(Shared_preference_key, MODE_PRIVATE); String Return_Password = USERNAME_and_PASSWORD.getString(pass_word_key, 「Guest」); –

+0

我編輯了我的答案 –

0
I put example for the sharing data between two Activities using shared preference. 
Using this code u get idea of shared preference how it's work. 
you can also be shared data between two activites which are in different packages in the same application.
 
PracSharePrefActivity Class
package com.sharedpref; 

import android.app.Activity; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.preference.PreferenceManager; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

public class PracSharePrefActivity extends Activity { 

    private SharedPreferences settings; 
    private String name,subject; 
    private Button btnSave; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     settings = PreferenceManager.getDefaultSharedPreferences(this); 

     name = settings.getString("Name",""); 
     subject = settings.getString("Subject", ""); 

     Log.e("Name0==",name); 
     Log.e("Subject0==",subject); 


     String yourName="Deval"; 
     String yourSubject="Android"; 

     SharedPreferences.Editor editor = settings.edit(); 

     editor.putString("Name",yourName); 
     editor.putString("Subject", yourSubject); 

     editor.commit(); 

     Log.e("Name 1==",settings.getString("Name", "")); 
     Log.e("Subject 1==",settings.getString("Subject", ""));  


     btnSave=(Button)findViewById(R.id.btnsave); 
     btnSave.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Intent i=new Intent(PracSharePrefActivity.this,GetSharedPref.class); 
       startActivity(i); 
      } 
     }); 

    } 



} 
"GetSharedPref" Class
package com.sharedpref; 

import android.app.Activity; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.preference.PreferenceManager; 
import android.util.Log; 

public class GetSharedPref extends Activity { 
    private SharedPreferences preferences; 
    private String name,subject; 
    @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.pref);   

      preferences = PreferenceManager.getDefaultSharedPreferences(this); 
      name = preferences.getString("Name", ""); 
      subject=preferences.getString("Subject", ""); 

      Log.e("Name: ",preferences.getString("Name", "")); 
      Log.e("Subject: ",preferences.getString("Subject","")); 

      preferences = PreferenceManager.getDefaultSharedPreferences(this);  
    } 
} 
+0

獲取共享首選項數據,並使用「pracshareprefactivity」類設置數據。 –

+0

感謝您的幫助。你的解決方案有效 – Amblll

+0

@Amblll你說這個解決方案有效,但接受其他... –