CSS Includes

Monday, October 15, 2012

Android SharedPreferencesManager Class

Today I'm going to talk about how I manage Android SharedPreferences in my application. Not a long time ago, I posted about SharedPreferences, so you can take a look back if you don't have any idea yet about SharedPreferences.

I basically used the setter and getter methods, which has been regarded as "evil" by many developers. I'm just a self thought programmer, I'm open to any suggestions by you guys especially if you are an advanced developer or knows a better implementation.

I feel convenient using this class, you can instantly write and read your SharedPreference values, especially if you choose to store several SharedPref values for your app. You just have to pass the context and then bam! You can use it even for a non-activity class.

How To Use?


Just the common way, instantiate:

    // make it a member variable
    SharedPreferencesManager SharedPrefMgr;
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // create an instance
        SharedPrefMgr = new SharedPreferencesManager(this);
       
        // ...

Write:

//just an example
String username = "ninjazhai";
SharedPrefMgr.setUsername(username);

Read:

String curr_username = SharedPrefMgr.getUsername();

SharedPreferencesManager Class


Just an example of my SharefPreferencesManager Class.

import android.content.Context;
import android.content.SharedPreferences;


public class SharedPreferencesManager {

    Context mContext;

    SharedPreferences settings;
    SharedPreferences.Editor editor;

    public SharedPreferencesManager(Context mContext) {

        settings = mContext.getSharedPreferences("my_shared_prefs", 0);
        editor = settings.edit();

    }

    // ----- firstname -----
    public String getFirstname() {
        return settings.getString("firstname", null);
    }

    public void setFirstname(String firstname) {
        editor.putString("firstname", firstname);
        editor.commit();
    }
   
    // ----- lastname -----
    public String getLastname() {
        return settings.getString("lastname", null);
    }

    public void setLastname(String lastname) {
        editor.putString("lastname", lastname);
        editor.commit();
    }
   
    // ----- username -----
    public String getUsername() {
        return settings.getString("username", null);
    }

    public void setUsername(String username) {
        editor.putString("username", username);
        editor.commit();
    }
   
    // ----- folder name -----
    public String getFolderName() {
        return settings.getString("folder_name", null);
    }

    public void setFolderName(String folder_name) {
        editor.putString("folder_name", folder_name);
        editor.commit();
    }
   
   
    // ----- debug mode -----
    public boolean getDebugMode() {
        return settings.getBoolean("debug_mode", false);
    }

    public void setDebugMode(boolean debug_mode) {
        editor.putBoolean("debug_mode", debug_mode);
        editor.commit();
    }
   
    // ... you can add more here ...
   
}
Thanks for sharing the post! :)
For FREE programming tutorials, enter your email below and subscribe! :)

2 comments:

Zorita Morrison said...

I am fresher in this area and i came to know from your sites many suggestion which is very helpful so thanks to you and carry on.

Mike Dalisay said...

Thanks Zorita! You can subscribe to this blog! :D

Post a Comment

You can use http://pastebin.com/ or http://jsfiddle.net/ if you want to comment some codes.

Related Posts