结果活动中主活动的对象未正确访问布尔变量



我有一个主类,它包含两个类对象的数组列表。长话短说,我通过startActivityForResult调用一个活动,以返回微调器项目选择的位置。我在主活动中有两个布尔变量,它们基本上告诉应用程序正在使用哪个列表:布尔值listASelected和listBSelected。如果listASelected=true,则listBSelected=false,反之亦然。在结果活动中,我基本上是这样生成微调器的:

MainActivity mainAct = new MainAtivity();
Spinner dropdown = (Spinner)findViewById(R.id.mainMenu);
    for(int i = 0;i<mainAct.pickThreeNumbers.size(); i++){
        optionsPickThree.add(mainAct.pickThreeNumbers.get(i).getNumbers(1)+mainAct.pickThreeNumbers.get(i).getNumbers(2)+mainAct.pickThreeNumbers.get(i).getNumbers(3));
    }
    for(int r = 0; r<mainAct.pickFourNumbers.size();r++){
        optionsPickFour.add(mainAct.pickFourNumbers.get(r).getNumbers(1)+mainAct.pickFourNumbers.get(r).getNumbers(2)+mainAct.pickFourNumbers.get(r).getNumbers(3)+mainAct.pickFourNumbers.get(r).getNumbers(4));
    }
    if(mainAct.pickThreeSelected){
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, optionsPickThree);
    }else{
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, optionsPickFour);
    }
        dropdown.setAdapter(adapter);

然后,我用这个来做我的setResult。

Intent output = new Intent();
        if(mainAct.pickThreeSelected){
            output.putExtra("slot", position);
            output.putExtra("list", "PickThree");
        }else{
            output.putExtra("slot", position);
            output.putExtra("list", "PickFour");
    } 
        setResult(1,output);
        finish();
    }

问题是,nomatter总是像mainAct.pickThreeSelected=true一样工作,即使我知道它是false,因为应用程序的其他部分运行正常。我假设发生的情况是,类对象在执行时访问变量的初始化值,而不是当前值。否则,我就是个白痴,有另一种方法可以做到这一点。

有什么帮助吗,伙计们?提前感谢!

将pickThreeSelected设为静态。这样你每次都会更新同一个实例。

您为mainAct.pickThreeSelected设置的默认值是多少??如果它是真的,就把它当作假的。然后,如果用户选择了listA,则将该值更改为true。

最新更新