Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.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 ClassCastException:编辑文本到按钮错误_Java_Android_Runtime Error_Classcastexception - Fatal编程技术网

Java ClassCastException:编辑文本到按钮错误

Java ClassCastException:编辑文本到按钮错误,java,android,runtime-error,classcastexception,Java,Android,Runtime Error,Classcastexception,我正在开发一个安卓应用程序,我在这里发布后已经修复了它:并修复了问题。今天我把布局弄得一团糟,因为我不喜欢它的外观,我试图运行程序,但在将编辑文本转换为按钮时出错,我很确定我没有这样做。是什么导致了ClassCastException?提前感谢您的帮助 package complex.OliverV; import android.app.Activity; import android.os.Bundle; import android.view.View; import

我正在开发一个安卓应用程序,我在这里发布后已经修复了它:并修复了问题。今天我把布局弄得一团糟,因为我不喜欢它的外观,我试图运行程序,但在将
编辑文本
转换为
按钮时出错,我很确定我没有这样做。是什么导致了
ClassCastException
?提前感谢您的帮助

  package complex.OliverV;

  import android.app.Activity;
  import android.os.Bundle;
  import android.view.View;
  import android.widget.Button;
  import android.widget.TextView;
  import android.widget.RadioButton;
  import android.widget.EditText;
  public class ComplexNumbersActivity extends Activity {
/** Called when the activity is first created. */
Button Check;
RadioButton plus, minus, multiply, div;
EditText X1,X2,Y1,Y2;
TextView Ans;
int sign;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Check = (Button) findViewById(R.id.Check);
    plus = (RadioButton) findViewById(R.id.plus);
    minus = (RadioButton) findViewById(R.id.minus);
    multiply = (RadioButton) findViewById(R.id.multiply);
    div = (RadioButton) findViewById(R.id.div);
    Ans = (TextView) findViewById(R.id.Ans);
    X1=(EditText) findViewById(R.id.X1);
    X2=(EditText) findViewById(R.id.X2);
    Y1=(EditText) findViewById(R.id.Y1);
    Y2=(EditText) findViewById(R.id.Y2);
    plus.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            sign=1;
        }


    });
    minus.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            sign=2;
        }


    });
    multiply.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            sign=3;
        }


    });
    div.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            sign=4;
        }


    });
    Check.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            String xs=X1.getText().toString();
            String xss=X2.getText().toString();
            String ys=Y1.getText().toString();
            String yss=Y2.getText().toString();
            double x3 = 0, y3 = 0;
            if(!xs.equals("") && !xss.equals("") && !ys.equals("") && !yss.equals("")&& xs != null && xss != null && ys != null && yss != null)
            {
            double x1=Double.parseDouble(xs);
            double x2=Double.parseDouble(xss);
            double y1=Double.parseDouble(ys);
            double y2=Double.parseDouble(yss);
            switch(sign)
            {
            case(1):
            {
                x3=x1+x2;
                y3=y1+y2;
            }
            case(2):
            {
                x3=x1-x2;
                y3=y1-y2;
            }
            case(3):
            {
                x3=(x1*x2 - y1*y2);
                y3=(x2*y1 + x1*y2);
            }
            case(4):
            {
                if(x2!=0 && y2!=0)
                {
                x3 = (x1 * x2 + y1 * y2) / (x2 * x2 + y2 * y2);
                y3 = (x2 * y1 - x1 * y2) / (x2 * x2 + y2 * y2);
                }
                else
                {
                    Ans.setText("Enter valid numbers!");
                }
            }
        }
            Ans.setText("x = "+x3+"y = "+y3);
        }
            else
            {
                Ans.setText("Enter valid numbers!");
            }
        }
    });
}       
}
这是Logcat中的错误列表

  02-27 21:04:48.679: E/AndroidRuntime(571): FATAL EXCEPTION: main
  02-27 21:04:48.679: E/AndroidRuntime(571): java.lang.RuntimeException: Unable to start activity ComponentInfo{complex.OliverV/complex.OliverV.ComplexNumbersActivity}: java.lang.ClassCastException: android.widget.EditText cannot be cast to android.widget.Button
  02-27 21:04:48.679: E/AndroidRuntime(571):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
  02-27 21:04:48.679: E/AndroidRuntime(571):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
  02-27 21:04:48.679: E/AndroidRuntime(571):    at android.app.ActivityThread.access$600(ActivityThread.java:123)
  02-27 21:04:48.679: E/AndroidRuntime(571):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
  02-27 21:04:48.679: E/AndroidRuntime(571):    at android.os.Handler.dispatchMessage(Handler.java:99)
  02-27 21:04:48.679: E/AndroidRuntime(571):    at android.os.Looper.loop(Looper.java:137)
  02-27 21:04:48.679: E/AndroidRuntime(571):    at android.app.ActivityThread.main(ActivityThread.java:4424)
  02-27 21:04:48.679: E/AndroidRuntime(571):    at java.lang.reflect.Method.invokeNative(Native Method)
  02-27 21:04:48.679: E/AndroidRuntime(571):    at java.lang.reflect.Method.invoke(Method.java:511)
  02-27 21:04:48.679: E/AndroidRuntime(571):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
  02-27 21:04:48.679: E/AndroidRuntime(571):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
  02-27 21:04:48.679: E/AndroidRuntime(571):    at dalvik.system.NativeStart.main(Native Method)
  02-27 21:04:48.679: E/AndroidRuntime(571): Caused by: java.lang.ClassCastException: android.widget.EditText cannot be cast to android.widget.Button
  02-27 21:04:48.679: E/AndroidRuntime(571):    at complex.OliverV.ComplexNumbersActivity.onCreate(ComplexNumbersActivity.java:21)
  02-27 21:04:48.679: E/AndroidRuntime(571):    at android.app.Activity.performCreate(Activity.java:4465)
  02-27 21:04:48.679: E/AndroidRuntime(571):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
  02-27 21:04:48.679: E/AndroidRuntime(571):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
  02-27 21:04:48.679: E/AndroidRuntime(571):    ... 11 more
看起来你的R.id.支票是编辑文本,不是按钮


您的R.id.Check似乎是一个编辑文本,而不是一个按钮。

根据错误:

Caused by: java.lang.ClassCastException: android.widget.EditText cannot be cast to android.widget.Button
    at complex.OliverV.ComplexNumbersActivity.onCreate(ComplexNumbersActivity.java:21) 
R.id.Check
这里指的是编辑文本而不是按钮

    Check = (Button) findViewById(R.id.Check);  // Line 21
根据实际需要的视图类型,更改
main.XML
中的Java代码或XML


另外,请阅读哪些状态下变量应以小写字母开头,以帮助区分它们与类。

根据错误:

Caused by: java.lang.ClassCastException: android.widget.EditText cannot be cast to android.widget.Button
    at complex.OliverV.ComplexNumbersActivity.onCreate(ComplexNumbersActivity.java:21) 
R.id.Check
这里指的是编辑文本而不是按钮

    Check = (Button) findViewById(R.id.Check);  // Line 21
根据实际需要的视图类型,更改
main.XML
中的Java代码或XML


另外,请阅读哪些状态下变量应以小写字母开头,以帮助区分它们与类。

如果您确定R.id.Check指的是
按钮,那么您可以尝试清理项目,然后重新构建。

如果您确定R.id.Check指的是
按钮,然后,您可以尝试清理项目,然后重新构建。

错误在这里

Check = (Button) findViewById(R.id.Check);
正因为如此

E/AndroidRuntime(571): Caused by: java.lang.ClassCastException: android.widget.EditText cannot be cast to android.widget.Button
该错误表示您正在尝试转换不是按钮的EditText

转到设计相关布局的XML文件,并更改特定字段的android ID值

编辑

好像你来自C++背景。在Java中,请遵循Java命名标准,否则您的代码将被评为糟糕的设计,并将误导许多“快速查看”开发人员

错误就在这里

Check = (Button) findViewById(R.id.Check);
正因为如此

E/AndroidRuntime(571): Caused by: java.lang.ClassCastException: android.widget.EditText cannot be cast to android.widget.Button
该错误表示您正在尝试转换不是按钮的EditText

转到设计相关布局的XML文件,并更改特定字段的android ID值

编辑


好像你来自C++背景。在Java中,请遵循Java命名标准,否则您的代码将被评为糟糕的设计,并将误导许多“快速查看”开发人员

-1这意味着从字面上看异常是什么意思这是字面意思是什么例外是是的,我的C++和C语言更好,而且对java和类的总体来说没有太多。谢谢你的帮助:是的,我喜欢C++和C语言,而且对java和类的整体来说也不怎么多。谢谢你的帮助:)