Java 为什么赢了';我工作吗?

Java 为什么赢了';我工作吗?,java,android,Java,Android,这是我的密码。我想确保在用户选择正确的号码之前,randomNumber保持不变,因此我尝试通过Log.I显示该号码。但是,每当单击“我的按钮”时,android监视器上都不会打印任何内容 int randomNumber = (int) (Math.random() * 50) + 1; public void checkNumber(View view) { Log.i("Number", Integer.toString(randomNumber)); EditText

这是我的密码。我想确保在用户选择正确的号码之前,
randomNumber
保持不变,因此我尝试通过Log.I显示该号码。但是,每当单击“我的按钮”时,android监视器上都不会打印任何内容

int randomNumber = (int) (Math.random() * 50) + 1;

public void checkNumber(View view) {
    Log.i("Number", Integer.toString(randomNumber));
    EditText numberEntered = (EditText) findViewById(R.id.numberEntered);
    int numberEnteredInt = Integer.parseInt(numberEntered.getText().toString());
    if(!(numberEnteredInt <= 50 && numberEnteredInt >= 1)) {
        //some code
    } else if(numberEnteredInt < randomNumber) {
        //some code
    } else if(numberEnteredInt > randomNumber) {
        //some code
    } else {
        //some code
        randomNumber = (int) (Math.random() * 50) + 1;
    }
}
intrandomNumber=(int)(Math.random()*50)+1;
公共作废支票编号(查看){
Log.i(“Number”,Integer.toString(randomNumber));
EditText numberEntered=(EditText)findViewById(R.id.numberEntered);
int numberEnteredInt=Integer.parseInt(numberEntered.getText().toString());
如果(!(numberEnteredInt=1)){
//一些代码
}else if(numberEnteredInt<随机数){
//一些代码
}否则如果(numberEnteredInt>randomNumber){
//一些代码
}否则{
//一些代码
随机数=(int)(Math.random()*50)+1;
}
}
只需多次运行这个应用程序,我的其余代码似乎工作正常(因此在这种情况下我实际上不需要日志),但我很好奇为什么显示器上没有显示任何内容。谢谢

更新: 好了,现在它工作得很好;我不知道以前发生了什么。我注意到一些人建议使用“+randomNumber”而不是Integer.toString(randomNumber)。前者更有效吗?再次感谢。

您确定在onClickListener中调用了checkNumber()吗?如果是,请尝试将\n添加到日志消息中

    Log.i("Number", "\n" + randomNumber);

我认为您根本不需要使用Integer.toString()。您可以将整条线路替换为:

Log.i("NUMBER", "" + randomNumber);

如果调用checkNumber()方法作为按钮的onClick,那么它绝对应该打印到控制台。请确保您的控制台设置为调试模式,并且打印输出上方的一行没有显示“无可调试应用程序”,而是显示您的应用程序的名称。

您在任何地方调用过checkNumber方法吗?@kapsym No。我需要吗?哦,等等。我为我的按钮输入了onClick的checkNumber,这样每当有人单击按钮时它都会运行。
toString()
不需要。使用您提到的方法是否比Integer.toString()更有效?我记得在某个地方读到,字符串连接可能是内存使用的负担,因为它每次使用时都会创建一个新的字符串对象。我只是想确定我将来会选择正确的。谢谢。对于大多数事情来说,这没什么大不了的。除非你把一堆东西连在一起。只要添加一个变量,所需的时间就可以忽略不计。但是,使用空字符串和连接比使用toString()慢,这是绝对正确的。但是toString()也比使用StringBuilder慢,这是最有效的方法,但是对于这样的东西,可能会被认为是杀伤力过大。下面是一篇很棒的文章,概述了您的所有选择: