Java 当我没有';虽然我提到了代码,但我没有给出任何输入

Java 当我没有';虽然我提到了代码,但我没有给出任何输入,java,android,Java,Android,创建的应用程序将查找数字是否为三角形。有关更多详细信息,请参阅 现在,当我在文本视图中单击按钮而不提供任何输入时,应用程序突然关闭。不应该是这样,因为我已经在代码中为空字符串使用了if语句 package com.example.numbershapes; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View;

创建的应用程序将查找数字是否为三角形。有关更多详细信息,请参阅

现在,当我在文本视图中单击按钮而不提供任何输入时,应用程序突然关闭。不应该是这样,因为我已经在代码中为空字符串使用了if语句

    package com.example.numbershapes;

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

    class Number {
        int number;

        public boolean isTriangular() {
            int x = 1;
            int triangularNmbr = 1;
            while (triangularNmbr < number) {
                x++;
                triangularNmbr += x;
            }
            if(triangularNmbr == number) {
                return true;
            }
            else {
                return false;
            }
        }
    }
    public class MainActivity extends AppCompatActivity {
        public void testNumber(View view)
        {
            EditText usersNumber = 
            (EditText)findViewById(R.id.usersNumber);
            String message = "";
            if(usersNumber.getText().toString().isEmpty()){
                message = "Please enter a number";
            }
            Number myNumber = new Number();
            myNumber.number =
Integer.parseInt(usersNumber.getText().toString());


            //will display on logcat
            System.out.println(myNumber.isTriangular());

            if(myNumber.isTriangular()){
                message = myNumber.number + " is triangular" ;
            }
            else{
                message = myNumber.number + " is not triangular" ;
            }
            Toast.makeText(getApplicationContext(), message, 
            Toast.LENGTH_LONG).show();
        }

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    }
package com.example.numbershapes;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.EditText;
导入android.widget.Toast;
班号{
整数;
公共布尔isTriangular(){
int x=1;
int triangularNmbr=1;
while(triangularNmbr
另外,我在事件日志中得到一个错误。“无法为调试器绑定到本地8600”。 有人能解释一下是什么吗

**

  • 应用程序关闭时的Logcat详细信息
**

2019-09-08 00:38:56.005 4718-4718/?I/art:void android.app.Activity.performCreate(android.os.Bundle)(Activity.java:6662) 2019-09-08 00:38:56.005 4718-4718/? I/art:void android.app.Instrumentation.callActivityOnCreate(android.app.Activity,android.os.Bundle)(Instrumentation.java:1118) 2019-09-08 00:38:56.005 4718-4718/? I/art:android.app.Activity.android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord,android.content.Intent)(ActivityThread.java:2599) 2019-09-08 00:38:56.005 4718-4718/? I/art:void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord,android.content.Intent,java.lang.String)(ActivityThread.java:2707) 2019-09-08 00:38:56.005 4718-4718/? I/art:void android.app.ActivityThread.-wrap12(android.app.ActivityThread,android.app.ActivityThread$ActivityClientRecord,android.content.Intent,java.lang.String)(ActivityThread.java:-1) 2019-09-08 00:38:56.005 4718-4718/? I/art:void android.app.ActivityThread$H.handleMessage(android.os.Message)(ActivityThread.java:1460) 2019-09-08 00:38:56.005 4718-4718/? I/art:at void android.os.Handler.dispatchMessage(android.os.Message)(Handler.java:102) 2019-09-08 00:38:56.005 4718-4718/? I/art:at void android.os.Looper.loop()(Looper.java:154) 2019-09-08 00:38:56.005 4718-4718/? I/art:void android.app.ActivityThread.main(java.lang.String[])(ActivityThread.java:6077) 2019-09-08 00:38:56.005 4718-4718/? I/art:at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object,java.lang.Object[])(Method.java:-2) 2019-09-08 00:38:56.005 4718-4718/? I/art:void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run()(ZygoteInit.java:866) 2019-09-08 00:38:56.005 4718-4718/? I/art:void com.android.internal.os.ZygoteInit.main(java.lang.String[])(ZygoteInit.java:756) 2019-09-08 00:38:56.142 1314-1322/? E/SurfaceFlinger:ro.sf.lcd\u密度必须定义为构建属性 2019-09-08 00:38:56.190 4718-4734/com.example.numbershapes I/OpenGLRenderer:初始化EGL,版本1.4 2019-09-08 00:38:56.190 4718-4734/com.example.numbershapes D/OpenGLRenderer:交换行为1 2019-09-08 00:38:56.192 4718-4734/com.example.numbershapes W/OpenGLRenderer:未能选择保留EGL交换行为的配置,正在重试,但没有。。。 2019-09-08 00:38:56.192 4718-4734/com.example.numbershapes D/OpenGLRenderer:Swap行为0 2019-09-08 00:38:56.320 4718-4734/com.example.numbershapes D/EGL_仿真:eglCreateContext:0x8d11ba20:maj 2 min 0 rcv 2 2019-09-08 00:38:56.596 4718-4734/com.example.numbershapes D/EGL_仿真:eglMakeCurrent:0x8d11ba20:ver 2 0(tinfo 0x9b763770) 2019-09-08 00:38:56.634 4718-4718/com.example.numbershapes W/art:Android 4.1之前,方法int-Android.support.v7.widget.DropDownListView.lookForSelectablePosition(int,boolean)会错误地覆盖Android.widget.ListView中的包私有方法 2019-09-08 00:38:56.693 4718-4734/com.example.numbershapes D/EGL_仿真:eglMakeCurrent:0x8d11ba20:ver 2 0(tinfo 0x9b763770) 2019-09-08 00:38:56.996 1601-1621/? I/ActivityManager:显示的com.example.numbershapes/.main活动:+1s767ms 2019-09-08 00:38:57.010 1671-1862/? D/EGL_仿真:eglMakeCurrent:0xa8e855a0:ver 2 0(tinfo 0xa8e83640) 2019-09-08 00:38:57.035 1601-1751/? I/WindowManager:正在销毁由com.android.server.wm.WindowsStateAnimator.destroySurface调用的曲面(name=com.android.systemui/com.android.systemui.recents.RecentsActivity):2016 com.android.server.wm.WindowsStateAnimator.destroySurface已选中:882 com.android.server.w
     Caused by: java.lang.NumberFormatException: For input string: ""
        at java.lang.Integer.parseInt(Integer.java:620)
        at java.lang.Integer.parseInt(Integer.java:643)
        at stackoverflow57836483.MainActivity.testNumber(MainActivity.java:39)
myNumber.number = Integer.parseInt(usersNumber.getText().toString());
if(usersNumber.getText().toString().isEmpty()){
   message = "Please enter a number";
}
        public void testNumber(View view)
        {
            EditText usersNumber = (EditText)findViewById(R.id.usersNumber);
            String message = "";
            if(usersNumber.getText().toString().isEmpty()){
                message = "Please enter a number";
            } else {                                // ELSE STARTS HERE...
                Number myNumber = new Number();
                myNumber.number = Integer.parseInt(usersNumber.getText().toString());

                //will display on logcat
                System.out.println(myNumber.isTriangular());

                if(myNumber.isTriangular()){
                    message = myNumber.number + " is triangular" ;
                }
                else{
                    message = myNumber.number + " is not triangular" ;
                }
            }                                       // AND ENDS HERE
            Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
        }