我正在尝试重新组织我的一项活动。基本上,我想要做的是将一个linearlayout元素和文本元素从页面底部移动到中间。但是,当我执行并运行我的应用程序时,我收到此错误:
06-26 13:37:38.385: E/AndroidRuntime(11578): FATAL EXCEPTION: main
06-26 13:37:38.385: E/AndroidRuntime(11578): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.beerportfoliopro/com.example.beerportfoliopro.BeerPage}: java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.TextView
06-26 13:37:38.385: E/AndroidRuntime(11578): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2332)
06-26 13:37:38.385: E/AndroidRuntime(11578): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2368)
06-26 13:37:38.385: E/AndroidRuntime(11578): at android.app.ActivityThread.access$600(ActivityThread.java:151)
06-26 13:37:38.385: E/AndroidRuntime(11578): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1330)
06-26 13:37:38.385: E/AndroidRuntime(11578): at android.os.Handler.dispatchMessage(Handler.java:99)
06-26 13:37:38.385: E/AndroidRuntime(11578): at android.os.Looper.loop(Looper.java:155)
06-26 13:37:38.385: E/AndroidRuntime(11578): at android.app.ActivityThread.main(ActivityThread.java:5536)
06-26 13:37:38.385: E/AndroidRuntime(11578): at java.lang.reflect.Method.invokeNative(Native Method)
06-26 13:37:38.385: E/AndroidRuntime(11578): at java.lang.reflect.Method.invoke(Method.java:511)
06-26 13:37:38.385: E/AndroidRuntime(11578): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1074)
06-26 13:37:38.385: E/AndroidRuntime(11578): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:841)
06-26 13:37:38.385: E/AndroidRuntime(11578): at dalvik.system.NativeStart.main(Native Method)
06-26 13:37:38.385: E/AndroidRuntime(11578): Caused by: java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.TextView
06-26 13:37:38.385: E/AndroidRuntime(11578): at com.example.beerportfoliopro.BeerPage.onCreate(BeerPage.java:49)
06-26 13:37:38.385: E/AndroidRuntime(11578): at android.app.Activity.performCreate(Activity.java:5066)
06-26 13:37:38.385: E/AndroidRuntime(11578): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1102)
06-26 13:37:38.385: E/AndroidRuntime(11578): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2288)
我原来的xml是:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/beerTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10"
android:textSize="20sp"
android:textStyle = "bold"
android:padding="5dip"
>
</TextView>
<ImageView android:id="@+id/image"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:layout_margin="10dip"/>
<TableLayout
android:id="@+id/tableLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:shrinkColumns="*"
android:stretchColumns="*">
<TableRow
android:id="@+id/tableStatTitles"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dip" >
<TextView
android:id="@+id/abvTitle"
android:text="ABV"
android:gravity="center"
android:textStyle = "bold"
android:textSize="20sp"
android:layout_weight="1"
></TextView>
<TextView
android:id="@+id/IBUTitle"
android:text="IBU"
android:gravity="center"
android:textStyle = "bold"
android:textSize="20sp"
android:layout_weight="1"
></TextView>
<TextView
android:id="@+id/glassTitle"
android:text="Glass"
android:gravity="center"
android:textStyle = "bold"
android:textSize="20sp"
android:layout_weight="1"
android:layout_width="wrap_content"
></TextView>
</TableRow>
<TableRow
android:id="@+id/tableStat"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dip" >
<TextView
android:id="@+id/abv"
android:text=""
android:gravity="center"
android:textSize="15sp"
android:layout_width="wrap_content"
></TextView>
<TextView
android:id="@+id/IBU"
android:text=""
android:gravity="center"
android:textSize="15sp"
android:layout_width="wrap_content"
></TextView>
<TextView
android:id="@+id/glass"
android:text=""
android:gravity="center"
android:textSize="15sp"
android:layout_width="wrap_content"
></TextView>
</TableRow>
</TableLayout>
<Button
android:id="@+id/buttonBrewery"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dip"
android:text=""
android:onClick="viewBrewery"
/>
<Button
android:id="@+id/buttonStyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dip"
android:text=""
android:onClick="viewStyle"
/>
<TextView
android:id="@+id/beerDescriptionTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10"
android:padding="5dip"
android:text="Description:"
android:textSize="20sp"
android:textStyle="bold" >
</TextView>
<TextView
android:id="@+id/beerDescription"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10"
android:textSize="15sp"
android:padding="5dip"
></TextView>
<TextView
android:id="@+id/yourPortfolio"
android:textStyle = "bold"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10"
android:textSize="20sp"
android:text="Your Portfolio:"
android:padding="5dip"
></TextView>
<LinearLayout
android:id="@+id/addBeerLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
</LinearLayout>
</LinearLayout>
</ScrollView>
我想要的那个和强制关闭应用程序的那个是:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/beerTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10"
android:textSize="20sp"
android:textStyle = "bold"
android:padding="5dip"
>
</TextView>
<ImageView android:id="@+id/image"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:layout_margin="10dip"/>
<TableLayout
android:id="@+id/tableLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:shrinkColumns="*"
android:stretchColumns="*">
<TableRow
android:id="@+id/tableStatTitles"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dip" >
<TextView
android:id="@+id/abvTitle"
android:text="ABV"
android:gravity="center"
android:textStyle = "bold"
android:textSize="20sp"
android:layout_weight="1"
></TextView>
<TextView
android:id="@+id/IBUTitle"
android:text="IBU"
android:gravity="center"
android:textStyle = "bold"
android:textSize="20sp"
android:layout_weight="1"
></TextView>
<TextView
android:id="@+id/glassTitle"
android:text="Glass"
android:gravity="center"
android:textStyle = "bold"
android:textSize="20sp"
android:layout_weight="1"
android:layout_width="wrap_content"
></TextView>
</TableRow>
<TableRow
android:id="@+id/tableStat"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dip" >
<TextView
android:id="@+id/abv"
android:text=""
android:gravity="center"
android:textSize="15sp"
android:layout_width="wrap_content"
></TextView>
<TextView
android:id="@+id/IBU"
android:text=""
android:gravity="center"
android:textSize="15sp"
android:layout_width="wrap_content"
></TextView>
<TextView
android:id="@+id/glass"
android:text=""
android:gravity="center"
android:textSize="15sp"
android:layout_width="wrap_content"
></TextView>
</TableRow>
</TableLayout>
<Button
android:id="@+id/buttonBrewery"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dip"
android:text=""
android:onClick="viewBrewery"
/>
<Button
android:id="@+id/buttonStyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dip"
android:text=""
android:onClick="viewStyle"
/>
<TextView
android:id="@+id/yourPortfolio"
android:textStyle = "bold"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10"
android:textSize="20sp"
android:text="Your Portfolio:"
android:padding="5dip"
></TextView>
<LinearLayout
android:id="@+id/addBeerLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
</LinearLayout>
<TextView
android:id="@+id/beerDescriptionTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10"
android:padding="5dip"
android:text="Description:"
android:textSize="20sp"
android:textStyle="bold" >
</TextView>
<TextView
android:id="@+id/beerDescription"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10"
android:textSize="15sp"
android:padding="5dip"
></TextView>
</LinearLayout>
</ScrollView>
答案 0 :(得分:2)
假设您没有更改xml或Java中的id's
,您可能只需要清理项目
项目 - &gt;清理......然后选择你的项目
有时Eclipse不会立即获取xml更改,因此它会抛出这些类转换异常。简单地清理和重建项目通常会处理这些错误。这是一个快速简单的事情,在拉出你所有的头发之前试图弄清楚为什么你会得到这样的例外。
答案 1 :(得分:1)
从logcat的第二行:“... android.widget.LinearLayout无法转换为android.widget.TextView ...”似乎在你的java代码中你试图将LinearLayout强制转换为TextView。也许你正在做类似的事情:
... = (LinearLayout)findViewById(<some id>);
它应该是:
... = (TextView)findViewById(<some id>);
老实说,我没有阅读你的布局xml,但是这个特殊问题出现在你的java代码中而不是xml中。
希望这会有所帮助......