代码之家  ›  专栏  ›  技术社区  ›  aurora

操作员无法应用于“android”。小装置。编辑文本'

  •  0
  • aurora  · 技术社区  · 2 年前

    我正在做一个android“数字猜测游戏”,它会生成一个介于1到30之间的随机数,并将其与用户的输入进行比较 (编辑文本输入类型:数字) 还有一个 文本框 它会告诉用户这个数字是大还是小。

    我试图通过这样做将用户的输入与真实数字进行比较:

    if (num_input == number) {
        t_win.setVisibility(View.VISIBLE);
    }
    

    它显示了这个错误: 运算符“==”不能应用于“android”。小装置。编辑文本“,”int“

    我试图通过以下方式将EditText更改为string或int来修复它:

    改为int

           @Override
            public void onClick(View arg0){
    
                s_title.setVisibility(View.INVISIBLE);
                t_rules.setVisibility(View.INVISIBLE);
                btn_start.setVisibility(View.INVISIBLE);
    
                strt_title.setVisibility(View.VISIBLE);
                t_introgss.setVisibility(View.VISIBLE);
                num_input.setVisibility(View.VISIBLE);
    
                // Generate random numbers
                int number = 1 + (int)(30 * Math.random());
    
                // Given trials
                int trials = 3;
                int i, guess;
    
                int guessNum = Integer.parseInt(num_input);  // Change to INT!
    
                // Iterate over number of trials
                for (i = 0; i < trials; i++) {
    
                    // If the number is guessed
                    if (guessNum == number) {
                        t_win.setVisibility(View.VISIBLE);
                    }
    

    换成字符串

              @Override
              public void onClick(View arg0){
    
                s_title.setVisibility(View.INVISIBLE);
                t_rules.setVisibility(View.INVISIBLE);
                btn_start.setVisibility(View.INVISIBLE);
    
                strt_title.setVisibility(View.VISIBLE);
                t_introgss.setVisibility(View.VISIBLE);
                num_input.setVisibility(View.VISIBLE);
    
                // Generate random numbers
                int number = 1 + (int)(30 * Math.random());
    
                // Given trials
                int trials = 3;
                int i, guess;
    
                String guessNum = num_input.getText().toString(); //Change to STRING
    
                // Iterate over number of trials
                for (i = 0; i < trials; i++) {
    
                    // If the number is guessed
                    if (guessNum == str(number)) {
                        t_win.setVisibility(View.VISIBLE);
                    }
    

    当我使用 Integer.parseInt(); 它告诉我它可以应用于 编辑文本 当我试着把它改成字符串 .getText().toString(); 它可以工作,但在操作员部分,我似乎无法更改 整数 串。

    我对这个很陌生,任何信息都会有帮助!

    0 回复  |  直到 2 年前
        1
  •  0
  •   Vasily Kabunov Yashvir yadav    2 年前

    你需要 int 从文本中获得的价值 EditText ,但不是从 编辑文本 它本身

    试着改变

    int guessNum = Integer.parseInt(num_input);  // Change to INT!
    

    int guessNum = Integer.parseInt(num_input.getText().toString());