Android.widget,textView无法强制转换为android.widget,按钮

启动我的活动时我一直收到运行时错误,并说android.widget.textview无法转换为android.widget.button?

XML:

          

这里发生了什么? 我已经经历了几次而找不到任何东西

编辑:

 09-17 18:28:51.485: E/AndroidRuntime(724): FATAL EXCEPTION: main 09-17 18:28:51.485: E/AndroidRuntime(724): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.intent_buttontests/com.example.intent_buttontests.PlayScreen}: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.Button 09-17 18:28:51.485: E/AndroidRuntime(724): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 09-17 18:28:51.485: E/AndroidRuntime(724): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 09-17 18:28:51.485: E/AndroidRuntime(724): at android.app.ActivityThread.access$600(ActivityThread.java:123) 09-17 18:28:51.485: E/AndroidRuntime(724): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 09-17 18:28:51.485: E/AndroidRuntime(724): at android.os.Handler.dispatchMessage(Handler.java:99) 09-17 18:28:51.485: E/AndroidRuntime(724): at android.os.Looper.loop(Looper.java:137) 09-17 18:28:51.485: E/AndroidRuntime(724): at android.app.ActivityThread.main(ActivityThread.java:4424) 09-17 18:28:51.485: E/AndroidRuntime(724): at java.lang.reflect.Method.invokeNative(Native Method) 09-17 18:28:51.485: E/AndroidRuntime(724): at java.lang.reflect.Method.invoke(Method.java:511) 09-17 18:28:51.485: E/AndroidRuntime(724): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 09-17 18:28:51.485: E/AndroidRuntime(724): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 09-17 18:28:51.485: E/AndroidRuntime(724): at dalvik.system.NativeStart.main(Native Method) 09-17 18:28:51.485: E/AndroidRuntime(724): Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.Button 09-17 18:28:51.485: E/AndroidRuntime(724): at com.example.intent_buttontests.PlayScreen.onCreate(PlayScreen.java:110) 09-17 18:28:51.485: E/AndroidRuntime(724): at android.app.Activity.performCreate(Activity.java:4465) 09-17 18:28:51.485: E/AndroidRuntime(724): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 09-17 18:28:51.485: E/AndroidRuntime(724): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 09-17 18:28:51.485: E/AndroidRuntime(724): ... 11 more 

  • 如何dynamic添加视图到已经在xml布局中声明的RelativeLayout?
  • Android getMeasuredHeight返回错误的值!
  • Android NumberPicker不闪烁光标
  • Android:以编程方式更改选项卡文本颜色
  • 如何在我的情况下使用dynamic名称访问资源?
  • Android小部件更新期间米勒不工作
  • 如何从TabHost中删除选项卡
  • 有没有办法一直显示ListView的滚动条?
  • 我添加了logcat。 但我不知道发生了什么

    这是LogCat文件中的重要信息:

     Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.Button at com.example.intent_buttontests.PlayScreen.onCreate(PlayScreen.java:110) 

    您正确读取错误,它是ClassCastException 。 下面的行Caused by...告诉你错误被抛出的位置,这是在第110行的PlayScreen.onCreate()中。最好的我可以告诉第110行:

     Button btnBattle = (Button) findViewById(R.id.btnBattle); 

    但这条线很好, btnBattle的XML看起来也很好……

    我自己用你的布局运行你的Activity并没有出现任何错误。 你清理过你的项目了吗? 通常这会消除这些“幻影”错误。 (在Eclipse中, Project – > Clean …


    我有一个建议,你有很多按钮做类似的任务。 如果使用XML onClick属性,则可以使用更少的代码执行相同的操作。 首先在Activity中创建一个方法(称之为launchClick() ),如下所示:

     public void launchClick(View v) { Intent intent; switch(v.getId()) { case R.id.button1: intent = new Intent(PlayScreen.this, Inventory.class); break; case R.id.button2: intent = new Intent(PlayScreen.this, Equipment.class); break; // etc, etc } startActivityForResult(intent, 0); }; 

    并将属性android:onClick添加到play_screen.xml应该具有此行为的每个Button:

      

    希望有所帮助!

    项目 – >清洁可以帮助你。

    您正在尝试将TextViewButton

    对于TextView执行此操作:

     TextView tv = (TextView)findviewById(R.id.your textviewid present in xml layout file); 

    对于Button

     Button btn1 = (Button)findviewById(R.id.your buttonid present in xml layout file); 

    在Eclipse中,转到Project> Clean,选择你的项目,这就是…你的应用程序将正常运行…

    我使用的RelativeLayout有3个textViews和2个按钮。 当我使用图形界面编辑器移动textViews的位置时,我得到了同样奇怪的错误。 如果我将它们放回原来放置的位置,错误就会消失。

    我可以通过以下方式摆脱错误:

    1. 将有问题的XML文件中的所有数据剪切到剪贴板。
    2. 保存项目。
    3. 清理项目(请参阅XML文件中的错误)
    4. 粘贴XML代码并保存
    5. 清洁

    这似乎是一个错误,因为XML代码是合法的,但不能在运行时正确构建。

    希望对你有效。 面向Web开发人员的Eclipse Java EE IDE。

    版本:Indigo Service Release 2 Build id:20120216-1857

    请附上您的java代码以找出问题发生的位置。 当您尝试将textview转换为按钮时会出现此问题。

    1. 项目>清洁

    要么

    1. 改变迭代Id

    它有帮助:D

    首先确保所有TextView在.java文件中寻址正确的TextView ..就像这样..

     TextView textview1 = (TextView) findViewById(R.id.textview1); 

    像Android.widget一样的错误,textView无法强制转换为android.widget,因为有些时候我们引用了Button而不是TextView

    如果一切正常,那么清理你的项目并刷新..它对我有用..

    我刚遇到同样的问题。 但是,我决定只使用“视图”而不进行投射。 它完美地运作。 “setOnClickListener”对我们的情况也是一样的。

    例如, View button = v.findViewById(button_id); button.setOnClickListener(...) View button = v.findViewById(button_id); button.setOnClickListener(...)

    如果项目清理不起作用。 原因可能与在多个项目上使用相同的ID有关。

    确保在通过布局或以编程方式分配ID时, 不会重复。

    我在将ID作为ID(可能不是最佳实践)的时候面对这个问题,因为ID与RadioButton检查ID相冲突。

    干杯