TheLettuceMaster
TheLettuceMaster

Reputation: 15734

Simplyfing Code to Manage SharedPreferences

How can I make this code trimmed down?

    prefsDisplay = getSharedPreferences("spinnerSelection",
            Context.MODE_PRIVATE);
    prefsPlan = getSharedPreferences("spinnerSelection1",
            Context.MODE_PRIVATE);

    if (prefsDisplay.getInt("spinnerSelection", 0) == 0) {
        s1 = 0;
    } else if (prefsDisplay.getInt("spinnerSelection", 0) == 1) {
        s1 = 1;
    } else if (prefsDisplay.getInt("spinnerSelection", 0) == 2) {
        s1 = 2;
    } else if (prefsDisplay.getInt("spinnerSelection", 0) == 3) {
        s1 = 3;
    } else {
        s1 = 0;
        DP.BreakdownMonths = 0;
    }

    if (prefsPlan.getInt("spinnerSelection1", 0) == 0) {
        s2 = 0;
    } else if (prefsPlan.getInt("spinnerSelection1", 0) == 1) {
        s2 = 1;
    } else if (prefsPlan.getInt("spinnerSelection1", 0) == 2) {
        s2 = 2;
    } else {
        s2 = 0;
        DP.PlanType = "highint";
    }

Basically, what I am doing, when the app logs in, I want it to check SharedPreferences. If it finds a value, it assigns it, otherwise, it defaults to a value.

Upvotes: 0

Views: 47

Answers (2)

323go
323go

Reputation: 14274

The following does exactly what your code does. Use the value assigned to shared prefs, and if empty, assign 0 AND also assign DP.

prefsDisplay = getSharedPreferences("spinnerSelection",
        Context.MODE_PRIVATE);
prefsPlan = getSharedPreferences("spinnerSelection1",
        Context.MODE_PRIVATE);

s1 = prefsDisplay.getInt("spinnerSelection", -1 );
if( s1 < 0 ) { 
    s1 = 0;
    DP.BreakdownMonths = 0;
}

s2 = prefsPlan.getInt("spinnerSelection1", -1 );
if( s2 < 0 ) {
    s2 = 0;
    DP.PlanType = "highint";
}

Upvotes: 3

AzizSM
AzizSM

Reputation: 6289

Use switch and case to define for respective if statement and use default to assign if it doesn't match any of the if statement.

example:

   int month = 8;
    String monthString;
    switch (month) {
        case 1:  monthString = "January";
                 break;
        case 2:  monthString = "February";
                 break;
        case 3:  monthString = "March";
                 break;
        case 4:  monthString = "April";
                 break;
        case 5:  monthString = "May";
                 break;
        case 6:  monthString = "June";
                 break;
        case 7:  monthString = "July";
                 break;
        case 8:  monthString = "August";
                 break;
        case 9:  monthString = "September";
                 break;
        case 10: monthString = "October";
                 break;
        case 11: monthString = "November";
                 break;
        case 12: monthString = "December";
                 break;
        default: monthString = "Invalid month";
                 break;
    }
    System.out.println(monthString);

Upvotes: 1

Related Questions