Android中奇怪的类型转换错误

用户名

我有一个android布局,如下所示:
在此处输入图片说明


Bit pattern --> aaa
在运行时对多行字符串更改内容将导致Send命令按钮下移。为了将按钮保持在同一位置,我更改了组件的位置,如下所示:
在此处输入图片说明

在这两种情况下,xml文件的内容似乎都相同(LinearLayout如果有区别,则使用该文件)

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="clip_horizontal"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/freqIndxTextView_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/freqIndxTextView_string" />

    <TextView
        android:id="@+id/freqIndxValTextView_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/freqIndxValTextView_string" />

    <SeekBar
        android:id="@+id/freqIndxSeekBar_id"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp" />

    <TextView
        android:id="@+id/gainLevelTextView_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/gainLevelTextView_string" />

    <TextView
        android:id="@+id/gainLevelValTextView_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/gainLevelValTextView_string" />

    <SeekBar
        android:id="@+id/gainLevelSeekBar_id"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp" />

    <Button
        android:id="@+id/btnInSituActivitySend_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="InSituActivitySend_click"
        android:text="@string/btnInSituActivitySend_string" />

    <TextView
        android:id="@+id/bitPatternTextView_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/bitPatternTextView_string" />

    <TextView
        android:id="@+id/bitPatternValTextView_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/bitPatternValTextView_string" />

</LinearLayout>  

但是,在第二种情况下,当此活动开始时,出现错误,应用程序关闭:

01-30 10:38:43.351: E/AndroidRuntime(3097): FATAL EXCEPTION: main
01-30 10:38:43.351: E/AndroidRuntime(3097): Process: com.example.fourcommandmenu, PID: 3097
01-30 10:38:43.351: E/AndroidRuntime(3097): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.fourcommandmenu/com.example.fourcommandmenu.InSituActivity}: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.Button
01-30 10:38:43.351: E/AndroidRuntime(3097):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
01-30 10:38:43.351: E/AndroidRuntime(3097):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
01-30 10:38:43.351: E/AndroidRuntime(3097):     at android.app.ActivityThread.access$800(ActivityThread.java:135)
01-30 10:38:43.351: E/AndroidRuntime(3097):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
01-30 10:38:43.351: E/AndroidRuntime(3097):     at android.os.Handler.dispatchMessage(Handler.java:102)
01-30 10:38:43.351: E/AndroidRuntime(3097):     at android.os.Looper.loop(Looper.java:136)
01-30 10:38:43.351: E/AndroidRuntime(3097):     at android.app.ActivityThread.main(ActivityThread.java:5001)
01-30 10:38:43.351: E/AndroidRuntime(3097):     at java.lang.reflect.Method.invokeNative(Native Method)
01-30 10:38:43.351: E/AndroidRuntime(3097):     at java.lang.reflect.Method.invoke(Method.java:515)
01-30 10:38:43.351: E/AndroidRuntime(3097):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
01-30 10:38:43.351: E/AndroidRuntime(3097):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
01-30 10:38:43.351: E/AndroidRuntime(3097):     at dalvik.system.NativeStart.main(Native Method)
01-30 10:38:43.351: E/AndroidRuntime(3097): Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.Button
01-30 10:38:43.351: E/AndroidRuntime(3097):     at com.example.fourcommandmenu.InSituActivity.onCreate(InSituActivity.java:70)
01-30 10:38:43.351: E/AndroidRuntime(3097):     at android.app.Activity.performCreate(Activity.java:5231)
01-30 10:38:43.351: E/AndroidRuntime(3097):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
01-30 10:38:43.351: E/AndroidRuntime(3097):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
01-30 10:38:43.351: E/AndroidRuntime(3097):     ... 11 more

主要错误似乎是这样的:

01-30 10:38:43.351: E/AndroidRuntime(3097): Caused by: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.Button
01-30 10:38:43.351: E/AndroidRuntime(3097):     at com.example.fourcommandmenu.InSituActivity.onCreate(InSituActivity.java:70)

有问题的行onCreate()是这样的:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_in_situ);
    freqIndxTextView = (TextView)findViewById(R.id.freqIndxTextView_id);
    gainLevelTextView = (TextView)findViewById(R.id.gainLevelTextView_id);
    freqIndxValTextView = (TextView)findViewById(R.id.freqIndxValTextView_id);
    gainLevelValTextView = (TextView)findViewById(R.id.gainLevelValTextView_id);
    bitPatternTextView = (TextView)findViewById(R.id.bitPatternTextView_id);
    bitPatternValTextView = (TextView)findViewById(R.id.bitPatternValTextView_id);
    freqIndxSeekBar = (SeekBar)findViewById(R.id.freqIndxSeekBar_id);
    gainLevelSeekBar = (SeekBar)findViewById(R.id.gainLevelSeekBar_id);
    btnInSituActivitySend = (Button)findViewById(R.id.btnInSituActivitySend_id);
    freqIndxValTextView.setText(Integer.toString(freqIndxSeekBar.getProgress()));
    gainLevelValTextView.setText(Integer.toString(gainLevelSeekBar.getProgress()));  
 .  
 .  
 .  

在行

btnInSituActivitySend = (Button)findViewById(R.id.btnInSituActivitySend_id);

btnInSituActivitySend被定义为,Button btnInSituActivitySend;并且btnInSituActivitySend_id在xml文件中被定义为

<Button
    android:id="@+id/btnInSituActivitySend_id"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="InSituActivitySend_click"
    android:text="@string/btnInSituActivitySend_string" />  

摘要
我没有将TextView类型转换为按钮。那我为什么会收到这个错误?

编辑(适用于以后的Google伙伴):
这似乎是一个非常普遍的问题,但由于错误描述的含糊性以及发现该问题并没有给出关于什么搜索的想法这一事实,很难找到解决方案在Google上使用的条款。解决的办法是清理项目

Android.widget,textView无法转换为android.widget,button
android.widget.Button无法转换为android.widget.EditText
java.lang.ClassCastException:android.widget.TextView。我为什么得到这个?
谷歌搜索

mrres1

删除gen文件夹,然后重新编译您的项目。

我以前见过此错误,并且通常是R文件中的错误引用

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Scala中奇怪的类型不匹配错误

来自分类Dev

Scala中奇怪的类型不匹配错误

来自分类Dev

函数模板的C ++奇怪类型转换错误

来自分类Dev

函数模板的C ++奇怪类型转换错误

来自分类Dev

C中的类型转换错误

来自分类Dev

Objective-C 指针类型“NSString *”到 C 指针类型“CFStringRef”错误的奇怪转换

来自分类Dev

位移导致奇怪的类型转换

来自分类Dev

奇怪的Swift数字类型转换

来自分类Dev

奇怪的类型转换行为

来自分类Dev

Java中的不可转换类型错误

来自分类Dev

MVC 4中的转换类型错误

来自分类Dev

Java中的转换或变量类型错误

来自分类Dev

pentaho中的数据类型转换错误

来自分类Dev

Java:(缺乏)通用类型转换中的错误

来自分类Dev

奇怪无法匹配类型错误

来自分类Dev

奇怪的类型不匹配错误

来自分类Dev

奇怪类型的“多重定义”错误

来自分类Dev

奇怪的类型不匹配错误

来自分类Dev

奇怪的类型不匹配错误

来自分类Dev

关于期望类型的奇怪错误

来自分类Dev

奇怪的Android错误

来自分类Dev

Android TabHost奇怪的错误

来自分类Dev

Android SQLite 奇怪的错误

来自分类Dev

奇怪的IF语句错误“从字符串“ FAIL”到类型'Long'的转换无效。“

来自分类Dev

Android 2.3.3中的小部件中的奇怪错误

来自分类Dev

奇怪的错误:播种实体数据库时,类型名称'Models'在类型...中不存在。

来自分类Dev

在我的R类中遇到奇怪的Android错误

来自分类Dev

Android中奇怪的drawArc()/ arcTo()错误(图形故障)是什么?

来自分类Dev

错误:类型“ String”不是类型转换中类型“ List <dynamic>”的子类型