Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的Int()总是返回0?_Java_Android - Fatal编程技术网

Java 我的Int()总是返回0?

Java 我的Int()总是返回0?,java,android,Java,Android,我有这个问题。。。 请注意,tip.setText告诉我它高于0。 我还将在另一个类中调用getResults方法。(Int“correct”已大于0) 我想知道为什么getResults中的correct总是0,以及如何解决这个问题 public int correct = 0; private String[] questions = {"Question 1", "Question 2", "Question 3", "Question

我有这个问题。。。 请注意,tip.setText告诉我它高于0。 我还将在另一个类中调用getResults方法。(Int“correct”已大于0)

我想知道为什么getResults中的correct总是0,以及如何解决这个问题

     public int correct = 0;

    private String[] questions =
   {"Question 1", 
    "Question 2",
    "Question 3", 
    "Question 4",
    "Question 5"
    };

public void onClick(View view) {
        if (alive == false) {
        //  startActivity(new Intent("com.aleksei.etb.END"));
            return;
        }
        try {
        button_click = MediaPlayer.create(this, R.raw.button_click);
        button_click.start();
        switch(view.getId()){
        case R.id.button5: //main
            break;
        case R.id.button1: //answer_1
            if(correct(1))
                correct++;


            break;
        case R.id.button2: //answer_2
            if(correct(2))
                correct++;

            break;
        case R.id.button3: //answer_3
            if(correct(3))
                correct++;

            break;
        case R.id.button4: //answer_3
            if(correct(4))
                correct++;


            break;

        default:
            break;


        }
        Game(i1);
        tip.setText("Correct answers "+correct); //this thing tells me that it's not 0. (Well, in the beggining it's 0, but after counter goes up! (correct++)
        } catch (Exception ex){}
    }

    public int getResults(){
        return (int)(correct*5)/(questions.length+1);
    }
编辑:


我会确保您在switch语句中确实捕捉到了这些情况。实际上,您可能没有输入这些案例


因此,如果您没有输入这些案例,则
正确
将保持
0

我认为您可能正在进行整数除法,因此,如果问题的大小很大,浮点除法将为0。因此,整数除法为0。尝试将“正确”转换为“浮动”,您将得到一个十进制数,而不是一个十进制数。下面是如何快速找到问题的答案:

转向

进入财产

    private int _correct = 0;
    public int correct
    {
        get { return _correct; }
        set { _correct = value; }
    }
并在二传手上设置一个断点。然后,您将看到是否有东西将其设置回零。如果在递增之后没有任何东西将其设置回零,那么可能在某个地方您正在实例化对象的新实例,但您没有意识到您没有使用默认值的新实例

我不认为这是一个整数除法问题,这里有一个注意事项:


您将乘以*5,然后除以5(因为有5个答案)。如果答案的数量在某一点上会发生变化,但5的乘数将保持不变,那么这是有意义的。但除此之外,我不知道你为什么要这样做,因为5/5=1,将某个数字乘以1是没有意义的。

开始结束活动时,你应该:

Intent end = new Intent("com.aleksei.etb.END"); end.putExtra("results", getResults()); startActivity(end); 意向结束=新意向(“com.aleksei.etb.end”); end.putExtra(“results”,getResults()); 星触觉(结束); 然后从结束活动中删除classy字段,改为在onCreate()方法中读取结果,如下所示:

int results = getIntExtra("results"); int results=getIntExtra(“结果”);
这将正确地将结果从一个活动转移到下一个活动。

getResults()
中是正确的0,或者是
anInt
0?“正确”始终是0。。AINT也是如此。<代码>问题>长度+1 < /Cube >相等吗?你有一个称为改正()的方法和一个称为“正确”的字段,你的方法“私有布尔校正(int x)”真的很混乱,考虑给它一个前缀,使你的代码更可读——就像ISECHOTIAM进入这些情况一样。我有tip.setText(“正确答案”+正确)来证明这一点。它告诉我“正确答案(不是0)”仍然得到0.0,即使我的提示是这样的。setText在使用getResults方法之前说了“4”。我得到了平均分,啊,是的!你说得对!第二类'ETBetaActivity classy=新ETBetaActivity();'这意味着我将它重置回0!该死的,我真是太蠢了,你知道我怎么能在不重新设置的情况下把它传给另一门课吗?我不知道你说的是什么意思。。。但我很高兴能帮上忙。我想这可能是你的问题:)我做了一个简单的android问答游戏。现在只有5个问题,4个答案。如果你猜5次,你的平均值是5,如果你猜4次,你的平均值是4。。。等但我会补充更多的问题。例如,你回答了10/25个问题。10*5/25 = 2. (我需要1-5)你到底想做什么?是否要将现有的ETBetaActivity对象传递到另一个ETBetaActivity对象?不知道为什么不使用现有的而不是创建一个新的。不幸的是,我现在得走了,但如果你提出一个新问题,也许其他人可以帮你解决这个问题。祝你好运@是的,直到现在我才意识到我在看Java代码。我不懂Java,所以如果您愿意,请随意编辑我的答案以反映Java代码。
    private int _correct = 0;
    public int correct
    {
        get { return _correct; }
        set { _correct = value; }
    }
Intent end = new Intent("com.aleksei.etb.END"); end.putExtra("results", getResults()); startActivity(end); int results = getIntExtra("results");