试图找出该方法不起作用的原因

时间:2017-06-30 17:39:50

标签: java android

在我的onCheckedChange中,已实施的方法不起作用。 所以我有这样的事情:

@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();
}

并且这个方法loadVariable()没有被调用,我知道,因为我告诉她:

Log.d("TAG","------"+number);

我在AndroidMonitor中看不到任何内容,请检查我的方法:

private void loadVariable(){

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

}

通常,此活动应显示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();
    }


    @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;
        Log.d("TAG","------"+number);

    }
}

1 个答案:

答案 0 :(得分:0)

您应该OnCheckedChangeListener CheckBox update()cb1.setOnCheckedChangeListener(this); cb2.setOnCheckedChangeListener(this); cb3.setOnCheckedChangeListener(this); cb4.setOnCheckedChangeListener(this); 注册die()

json_endcode()