2017-01-31 31 views
0

你好,我有一個問題。 我有一個按鈕,有2個選項,比如選中和取消選中女孩,我也有同樣的選擇。在我的片段中,我需要選擇一個並將其保存在SharedPreferences中。如何將按鈕映像到SharedPreferences並保存它

我有這樣的配置按鈕:

private void setSexButtons() { 

    sexButtonBoy.setOnClickListener(view -> { 
     sexButtonBoy.setSelected(true); 
     sexButtonBoy.setScaleX(1.4f); 
     sexButtonBoy.setScaleX(1.4f); 
     sexButtonGirl.setSelected(false); 
     sexButtonGirl.setScaleY(1.0f); 
     sexButtonGirl.setScaleX(1.0f); 
     Settings.setSelectedIem(true); 

    }); 

    sexButtonGirl.setOnClickListener(view -> { 
     sexButtonBoy.setSelected(false); 
     sexButtonGirl.setSelected(true); 
     sexButtonGirl.setScaleX(1.4f); 
     sexButtonGirl.setScaleX(1.4f); 
     sexButtonBoy.setScaleY(1.0f); 
     sexButtonBoy.setScaleX(1.0f); 
     Settings.setSelectedIem(true); 
    }); 
} 

,我也有一個方法來保存 - 但我想我做壞事becouse這不行

public static void setSelectedIem(boolean selectedIem) { 
    getPreferences().edit() 
      .putBoolean(SELECTED_SEX, selectedIem) 
      .apply(); 
} 

private static final String SELECTED_SEX = "selectedSex"; 

請給我任何意見如何做到這一點很好。

對不起,我留戀這裏是:

privated SharedPreferences sharedPreferences; 

和的onCreate

sharedPreferences = getSharedPreferences("me.fast.app", MODE_PRIVATE); 

,這裏是主要的方法:

private static SharedPreferences getPreferences() { 
    return ApplicationFast.sharedPreferences; 
} 

用新方法更新

public static boolean isSelectedItem(){ 
     return getPreferences().getBoolean(SELECTED_SEX, false); 
    } 
+0

您可以發佈您'getPreferences'方法的代碼? –

+0

感謝您的回覆,我編輯了主帖 – Rodriquez

+0

現在完全編輯 – Rodriquez

回答

0

我認爲你的問題是保存一個布爾值,因爲你保存的是兩個性別的「真實」。

你應該這樣做:

private void setSexButtons() { 
    //If you want to recover the settings do this: 
    sexButtonBoy.setSelected(Settings.isSelected()); 
    sexButtonGirl.setSelected(!Settings.isSelected()); 

    sexButtonBoy.setOnClickListener(view -> { 
     sexButtonBoy.setSelected(true); 
     sexButtonBoy.setScaleX(1.4f); 
     sexButtonBoy.setScaleX(1.4f); 
     sexButtonGirl.setSelected(false); 
     sexButtonGirl.setScaleY(1.0f); 
     sexButtonGirl.setScaleX(1.0f); 
     Settings.setSelectedIem(true); 

    }); 

    sexButtonGirl.setOnClickListener(view -> { 
     sexButtonBoy.setSelected(false); 
     sexButtonGirl.setSelected(true); 
     sexButtonGirl.setScaleX(1.4f); 
     sexButtonGirl.setScaleX(1.4f); 
     sexButtonBoy.setScaleY(1.0f); 
     sexButtonBoy.setScaleX(1.0f); 
     Settings.setSelectedIem(false); 
    }); 

} 

然後:

public static void setSelectedIem(boolean selectedIem) { 
    getPreferences().edit() 
      .putBoolean(IS_BOY, selectedIem) 
      .apply(); 
} 

private static final String IS_BOY = "isboy"; 
相關問題