在AndroidStudio

时间:2017-06-30 15:16:25

标签: java android android-annotations

此应用使用AndroidAnnotations。

我没有收到任何错误。我尝试在onCreate中实现loadVariable(),但是框架文档不可能,因为onCreate不能有视图。那么问题是如何在从SharedPreference启动应用程序后立即显示数据?另外,当我选中复选框时,textView没有显示复选框的数字。

我现在应该做什么?

 @EActivity(R.layout.activity_main2)
public class Main2Activity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener {

    private int numberOfTrue;

    @ViewById(R.id.tv1)
    TextView tv1;

    @ViewById(R.id.cb1)
    CheckBox cb1;

    @ViewById(R.id.cb2)
    CheckBox cb2;

    @ViewById(R.id.cb3)
    CheckBox cb3;

    @ViewById(R.id.cb4)
    CheckBox cb4;

    @AfterViews
    void update() {
        cb1.setChecked(getFromSP("cb1"));
        cb2.setChecked(getFromSP("cb2"));
        cb3.setChecked(getFromSP("cb3"));
        cb4.setChecked(getFromSP("cb4"));
    }

    @Click
    void b2() {
        Intent output = new Intent();
        output.putExtra("number", numberOfTrue);
        setResult(Activity.RESULT_OK, output);
        finish();
    }

    @AfterViews
    void update2() {
        loadVariable();
    }


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


    }

    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

        switch(buttonView.getId()){
            case R.id.cb1:
                saveInSp("cb1",isChecked);
                if (isChecked == true){
                    numberOfTrue++;

                }
                else
                {
                    numberOfTrue--;

                }
                break;
            case R.id.cb2:
                saveInSp("cb2",isChecked);
                if (isChecked == true){
                    numberOfTrue++;

                }
                else
                {
                    numberOfTrue--;

                }
                break;

            case R.id.cb3:
                saveInSp("cb3",isChecked);
                if (isChecked == true){
                    numberOfTrue++;

                }
                else
                {
                    numberOfTrue--;

                }
                break;

            case R.id.cb4:
                saveInSp("cb4",isChecked);
                if (isChecked == true){
                    numberOfTrue++;

                }
                else
                {
                    numberOfTrue--;

                }
                break;

        }

        saveVariable(numberOfTrue);
        loadVariable();
    }

    private boolean getFromSP(String key){
        SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE);
        return preferences.getBoolean(key, false);
    }
    private void saveInSp(String key,boolean value) {
        SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = preferences.edit();
        editor.putBoolean(key, value);
        editor.commit();
    }

    private void saveVariable(int numberOfTrue){

        SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPref.edit();
        editor.putInt("key2", numberOfTrue);
        editor.commit();

    }

    private void loadVariable(){

        SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE);
        int number = sharedPref.getInt("key2", 0);
        tv1.setText(""+number);
        numberOfTrue=number;

    }
}

0 个答案:

没有答案