Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.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 当EditText为空并按下按钮时,Android应用程序崩溃_Java_Android - Fatal编程技术网

Java 当EditText为空并按下按钮时,Android应用程序崩溃

Java 当EditText为空并按下按钮时,Android应用程序崩溃,java,android,Java,Android,当我按下应用程序上的“猜测”按钮时,我的应用程序正在崩溃,即使我有线路 package com.davidcleary.numberguesser; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.Toast; import java.

当我按下应用程序上的“猜测”按钮时,我的应用程序正在崩溃,即使我有线路

package com.davidcleary.numberguesser;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import java.util.Random;

public class MainActivity extends AppCompatActivity {

int randomNumber;
Random randNum = new Random();

public void randomGenerator(View view) {

    boolean isRight = false;

    EditText guess = (EditText) findViewById(R.id.guessText);
    String myGuess = guess.getText().toString();

    int guessInt = new Integer(guess.getText().toString());

        if (guess.getText().toString().equals("")) {

            Toast.makeText(getApplicationContext(), "Please Enter A Guess!", Toast.LENGTH_SHORT).show();

        } else if (guessInt == randomNumber) {

            Toast.makeText(getApplicationContext(), "You Guessed The Right Number!!! " + "( " + guessInt + " )", Toast.LENGTH_LONG).show();
            guess.setText("");
            randomNumber = randNum.nextInt(21);

        } else if (guessInt > randomNumber) {

            Toast.makeText(getApplicationContext(), "Your Guess Is Too High! " + "( " + guessInt + " )", Toast.LENGTH_SHORT).show();
            guess.setText("");


        } else {

            Toast.makeText(getApplicationContext(), "Your Guess Is Too Low! " + "( " + guessInt + " )", Toast.LENGTH_SHORT).show();
            guess.setText("");


        }
    }


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    randomNumber = randNum.nextInt(21);

   }
}
尝试捕获空文本

我看过其他stackOverflow帖子,但没有一个能解决我的错误

以下是日志:

if (guess.getText().toString().equals("")) {

            Toast.makeText(getApplicationContext(), "Please Enter A Guess!", Toast.LENGTH_SHORT).show();

        } 
02-2420:35:10.64515999-15999/?I/art:Late-enabling-Xcheck:jni
02-24 20:35:10.683 15999-15999/com.davidcleary.numberguesser W/ResourceType:找到多个库表,忽略。。。
02-24 20:35:10.784 15999-16028/com.davidcleary.numberguesser D/OpenGLRenderer:Use EGL_SWAP_BEHAVIOR_PRESERVED:true
02-24 20:35:10.790 15999-15999/com.davidcleary.numberguesser D/Atlas:正在验证地图。。。
02-24 20:35:10.849 15999-16028/com.davidcleary.numberguesser I/Adreno-EGL::EGL 1.4高通公司构建:AU_LINUX_ANDROID_LA.BF.1.1_RB1.05.01.00.042.030_msm8974_LA.BF.1.1.1_RB1_发布
OpenGL ES着色器编译器版本:E031.25.03.06
建造日期:7/13/15周一
本地分行:mybranch11906725
远程分支机构:quic/LA.BF.1.1_rb1.26
本地修补程序:无
重构分支:AU_LINUX_ANDROID_LA.BF.1.1.1_RB1.05.01.00.042.030+6151be1+a1e0343+002d7d6+7d0e3f7+NOTHING
02-24 20:35:10.850 15999-16028/com.davidcleary.numberguesser I/OpenGLRenderer:初始化EGL,版本1.4
02-24 20:35:10.866 15999-16028/com.davidcleary.numberguesser D/OpenGLRenderer:启用调试模式0
02-24 20:35:10.937 15999-15999/com.davidcleary.numberguesser I/Timeline:Timeline:Activity\u idle id:android.os。BinderProxy@23edbb88时间:9305943
02-24 20:35:14.498 15999-15999/com.davidcleary.numberguesser D/AndroidRuntime:关闭虚拟机
02-24 20:35:14.501 15999-15999/com.davidcleary.numberguesser E/AndroidRuntime:FATAL EXCEPTION:main
进程:com.davidcleary.numberguesser,PID:15999
java.lang.IllegalStateException:无法为android执行方法:onClick
在android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClic k(AppCompatViewInflater.java:275)上
在android.view.view.performClick上(view.java:4856)
在android.view.view$PerformClick.run(view.java:19956)
位于android.os.Handler.handleCallback(Handler.java:739)
位于android.os.Handler.dispatchMessage(Handler.java:95)
位于android.os.Looper.loop(Looper.java:211)
位于android.app.ActivityThread.main(ActivityThread.java:5373)
位于java.lang.reflect.Method.invoke(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:372)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)
原因:java.lang.reflect.InvocationTargetException
位于java.lang.reflect.Method.invoke(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:372)
在android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:270)
在android.view.view.performClick上(view.java:4856)
在android.view.view$PerformClick.run(view.java:19956)
位于android.os.Handler.handleCallback(Handler.java:739)
位于android.os.Handler.dispatchMessage(Handler.java:95)
位于android.os.Looper.loop(Looper.java:211)
位于android.app.ActivityThread.main(ActivityThread.java:5373)
位于java.lang.reflect.Method.invoke(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:372)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)上
在com.androi
02-24 20:35:10.645 15999-15999/? I/art: Late-enabling -Xcheck:jni
02-24 20:35:10.683 15999-15999/com.davidcleary.numberguesser            W/ResourceType: Found multiple library tables, ignoring...
02-24 20:35:10.784 15999-16028/com.davidcleary.numberguesser     D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
02-24 20:35:10.790 15999-15999/com.davidcleary.numberguesser D/Atlas:    Validating map...
02-24 20:35:10.849 15999-16028/com.davidcleary.numberguesser I/Adreno-  EGL: <qeglDrvAPI_eglInitialize:410>: EGL 1.4 QUALCOMM build:   AU_LINUX_ANDROID_LA.BF.1.1.1_RB1.05.01.00.042.030_msm8974_LA.BF.1.1.1_RB1__    release_AU ()
                                                                           OpenGL ES Shader Compiler Version: E031.25.03.06
                                                                          Build Date: 07/13/15 Mon
                                                                          Local Branch: mybranch11906725
                                                                         Remote Branch: quic/LA.BF.1.1.1_rb1.26
                                                                        Local Patches: NONE
                                                                        Reconstruct Branch: AU_LINUX_ANDROID_LA.BF.1.1.1_RB1.05.01.00.042.030 +  6151be1 + a1e0343 + 002d7d6 + 7d0e3f7 +  NOTHING
02-24 20:35:10.850 15999-16028/com.davidcleary.numberguesser    I/OpenGLRenderer: Initialized EGL, version 1.4
02-24 20:35:10.866 15999-16028/com.davidcleary.numberguesser    D/OpenGLRenderer: Enabling debug mode 0
02-24 20:35:10.937 15999-15999/com.davidcleary.numberguesser   I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@23edbb88    time:9305943
02-24 20:35:14.498 15999-15999/com.davidcleary.numberguesser     D/AndroidRuntime: Shutting down VM
02-24 20:35:14.501 15999-15999/com.davidcleary.numberguesser     E/AndroidRuntime: FATAL EXCEPTION: main
                                                                               Process: com.davidcleary.numberguesser, PID: 15999
                                                                               java.lang.IllegalStateException: Could not execute method for     android:onClick
                                                                                    at     android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClic     k(AppCompatViewInflater.java:275)
                                                                                   at android.view.View.performClick(View.java:4856)
                                                                                     at android.view.View$PerformClick.run(View.java:19956)
                                                                                   at android.os.Handler.handleCallback(Handler.java:739)
                                                                               at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                               at android.os.Looper.loop(Looper.java:211)
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5373)
                                                                               at java.lang.reflect.Method.invoke(Native Method)
                                                                               at java.lang.reflect.Method.invoke(Method.java:372)
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)
                                                                            Caused by: java.lang.reflect.InvocationTargetException
                                                                               at java.lang.reflect.Method.invoke(Native Method)
                                                                               at java.lang.reflect.Method.invoke(Method.java:372)
                                                                               at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:270)
                                                                               at android.view.View.performClick(View.java:4856) 
                                                                               at android.view.View$PerformClick.run(View.java:19956) 
                                                                               at android.os.Handler.handleCallback(Handler.java:739) 
                                                                               at android.os.Handler.dispatchMessage(Handler.java:95) 
                                                                               at android.os.Looper.loop(Looper.java:211) 
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5373) 
                                                                               at java.lang.reflect.Method.invoke(Native Method) 
                                                                               at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020) 
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815) 
                                                                            Caused by: java.lang.NumberFormatException: Invalid int: ""
                                                                               at java.lang.Integer.invalidInt(Integer.java:138)
                                                                               at java.lang.Integer.parseInt(Integer.java:358)
                                                                               at java.lang.Integer.parseInt(Integer.java:334)
                                                                               at java.lang.Integer.<init>(Integer.java:102)
                                                                               at com.davidcleary.numberguesser.MainActivity.randomGenerator(MainActivity.java:22)
                                                                               at java.lang.reflect.Method.invoke(Native Method) 
                                                                               at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                               at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:270) 
                                                                               at android.view.View.performClick(View.java:4856) 
                                                                               at android.view.View$PerformClick.run(View.java:19956) 
                                                                               at android.os.Handler.handleCallback(Handler.java:739) 
                                                                               at android.os.Handler.dispatchMessage(Handler.java:95) 
                                                                               at android.os.Looper.loop(Looper.java:211) 
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5373) 
                                                                               at java.lang.reflect.Method.invoke(Native Method) 
                                                                               at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020) 
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815) 
int guessInt = new Integer(guess.getText().toString());
if (guess.getText().toString().equals("")) {
    Toast.makeText(getApplicationContext(), "Please Enter A Guess!", Toast.LENGTH_SHORT).show();
    return;
}

int guessInt = new Integer(guess.getText().toString());

if (guessInt == randomNumber) {
int guessInt;
try{
    guessInt = new Integer(guess.getText().toString());
} catch {
    Toast.makeText(getApplicationContext(), "Please Enter A Valid Guess!", Toast.LENGTH_SHORT).show();
    return;
}
int guessInt;
try {
    guessInt = Integer.parseInt(myGuess);
}
catch(NumberFormatException ex) {
  //They didn't enter a number.  Pop up a toast or warn them in some other way
  return;
}
EditText guess = findViewById(R.id.guessText);
int guessValue;

        try {
            guessValue = Integer.parseInt(guess.getText().toString()); // best way to convert String into int
        } catch (Exception e)
        {
                    // Exception e  for handle all type of Exceptions
            Toast.makeText(getApplicationContext(),"Enter a Valid Number",Toast.LENGTH_LONG).show();
            return;
        }
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import java.util.Random;

public class MainActivity extends AppCompatActivity {
    int randomNumber;
    int guessLimit=20; // for set limit 1 to 20
    int guessTry; // how many time user try

    public void generateRandomNumber() {

        Random rand = new Random();
        randomNumber = rand.nextInt(guessLimit) + 1;
        guessTry=0; // after Right Answer you Guess try will be zero 

    }

    public void randomGenerator(View view) {

        EditText editText = (EditText) findViewById(R.id.guessText);


        int guessValue;
        //Try-Catch for handle Error of ediText
        try {
            guessValue = Integer.parseInt(editText.getText().toString();); //convert editText value into int
        }catch (Exception e)
        {
            Toast.makeText(getApplicationContext(),"Enter a Valid Number",Toast.LENGTH_LONG).show();
            return;
        }

        if (guessValue>0 && guessValue <guessLimit+1) { //Check if entre number is bigger or lower then Guess Limit

            if (guessValue > randomNumber) {
                guessTry++; // increase guess try every time
               Toast.makeText(getApplicationContext(),"Lower!" + " [Try=" + guessTry + "]" , Toast.LENGTH_SHORT).show();

            } else if (guessValue < randomNumber) {
                guessTry++;
                Toast.makeText(getApplicationContext(),"Higher!" + " [Try=" + guessTry + "]" , Toast.LENGTH_SHORT).show();

            } else {
                guessTry++;
                Toast.makeText(getApplicationContext(),"Hurry You Got it" + "[Ans=>"
                        + randomNumber + "]" + "  [Try=" + guessTry + "]" , Toast.LENGTH_SHORT).show();
                generateRandomNumber(); //after Success , create new random number

            }
        } else { //if values are not between your provided guess limit
       Toast.makeText(getApplicationContext(),"Entre Guess value between 1 to "+guessLimit,Toast.LENGTH_SHORT).show();
     }
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        generateRandomNumber(); // for call method of random number generater
    }

}