从未使用过方法 "exampleMethod"

Method "exampleMethod" is never used

我正在 android 工作室编写一个石头剪刀布程序,这是我目前所拥有的:(所有必要的东西都已导入)

    Random compans = new Random();
    int low = 1;
    int high = 3;

    int RPS = compans.nextInt(high-low) + low;

public void rock (View view) {
    Button Rock = (Button) findViewById(R.id.rock);
    Rock.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
            /* all capitals = user answer */
            if (RPS == 1) {
                startActivity(new Intent(MainActivity.this,Tie.class));
                //ROCK-rock tie
                }
            else if (RPS == 2) {
                //ROCK-paper lose
                startActivity(new Intent(MainActivity.this,Lose.class));
            }
            else if (RPS == 3) {
                //ROCK-scissors win
                startActivity(new Intent(MainActivity.this,Win.class));
            }
            }
        });
        }
public void paper (View view) {
    Button paper = (Button) findViewById(R.id.paper);
    paper.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            if (RPS == 1) {
                //PAPER-rock win
                startActivity(new Intent(MainActivity.this,Win.class));
            } else if (RPS == 2) {
                //PAPER-paper tie
                startActivity(new Intent(MainActivity.this,Tie.class));
            } else if (RPS == 3) {
                //PAPER-scissors lose
                startActivity(new Intent(MainActivity.this,Lose.class));
            }
        }
    });
}
public void scissors (View v) {
    Button scissors = (Button) findViewById(R.id.scissors);
    scissors.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
                if (RPS == 1) {
                    //SCISSORS-rock lose
                    startActivity(new Intent(MainActivity.this, Lose.class));
                } else if (RPS == 2) {
                    //SCISSORS-paper win
                    startActivity(new Intent(MainActivity.this, Win.class));
                } else if (RPS == 3) {
                    //SCISSORS-scissors tie
                    startActivity(new Intent(MainActivity.this, Tie.class));
                }
            }
    });
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}}

完成后,我注意到使用了 "rock" "paper" 或 "scissor" 方法中的 none。当我 运行 它在我的 phone 上时,我的按钮没有做任何事情,模拟器也是如此。

The message I get(没有足够的代表上传)

消息的解释和解决方案会很好,因为我仍然是初学者。任何帮助将不胜感激,谢谢!

该消息的意思是:您在运行程序时没有调用任何这些方法。

天真的解决方案:将 3 个方法的所有内容:rock,... 移动到 onCreate():

onCreate(...){
   ...
   setContentView(...);
   //----Example for rock button
   Button Rock = (Button) findViewById(R.id.rock);
   Rock.setOnClickListener(new OnClickListener(){

    @Override
    public void onClick(View v) {
        /* all capitals = user answer */
        if (RPS == 1) {
            startActivity(new Intent(MainActivity.this,Tie.class));
            //ROCK-rock tie
            }
        else if (RPS == 2) {
            //ROCK-paper lose
            startActivity(new Intent(MainActivity.this,Lose.class));
        }
        else if (RPS == 3) {
            //ROCK-scissors win
            startActivity(new Intent(MainActivity.this,Win.class));
        }
        }
    });
    }

//Do the same for other buttons here

}//end of onCreate

IDE 告诉你那些方法没有被调用。 您没有 post onCreate 内容,您可能希望将 button.setOnClick.. 移动到 onCreate 中。

附带说明一下,您可以在布局文件上执行此操作,而不是像那样连接 onclick。例如

<Button
   android:id="@+id/rock"
   android:onclick="rock"
   android:text="Rock" />

在这里,当单击摇滚按钮时,它会调用 activity 中的 "rock" 按钮。