for_2012
for_2012
采纳率70.7%
2012-12-06 07:10

简化管理SharedPreferences的代码

已采纳

怎么样能缩减一下这些代码?

  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";
    }

代码的功能是,当应用程序登入,检测SharedPreferences,如果检测到值,就分配,不然就用默认值

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • fandyvon 寒江独 9年前
    s1 = prefsDisplay.getInt("spinnerSelection", -1 );
    if( s1 != 0 && s1 != 1 && s1 != 2 && s1 != 3) { 
        s1 = 0;
        DP.BreakdownMonths = 0;
    }
    

    这样应该和最初的代码意思一致。

    点赞 评论 复制链接分享
  • ce_la_vie ce_la_vie 9年前

    下面代码和你实现功能是一样的:

    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";
    }
    
    点赞 评论 复制链接分享
  • aomandeshangxiao 傲慢的上校 9年前

    楼上回答的很好了。。。对于sharepreference,楼主好好看看的它的用法。

    点赞 评论 复制链接分享
  • A328240784 追风筝的孩子 9年前

    你可以试试这个
    s1 = prefsDisplay.getInt("spinnerSelection", 0);

    点赞 评论 复制链接分享

相关推荐