android.widget.LinearLayout的ClassCastException

时间:2012-07-12 11:59:50

标签: android android-linearlayout

我为我的一个活动设计了布局但是我得到了奇怪的错误。这是一个简单的活动,实际上它是包含图像按钮的主菜单活动。

"07-12 16:40:22.599: E/AndroidRuntime(1857): Caused by: java.lang.ClassCastException: android.widget.LinearLayout
"

这是我的布局xml代码

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="fill_parent" >


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/rpg"
        android:orientation="vertical" >

        <TableLayout
            android:id="@+id/tableLayout1"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center" >

                <TextView android:text="                                 " />
            </TableRow>

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center" >

                <TextView android:text="                                 " />
            </TableRow>

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center" >

                <TextView android:text="                                 " />
            </TableRow>

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center" >

                <TextView android:text="                                 " />
            </TableRow>

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center" >

                <TextView android:text="                                 " />
            </TableRow>

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center" >

                <TextView android:text="                                 " />
            </TableRow>

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center" >

                <TextView android:text="                                 " />
            </TableRow>

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center" >

                <TextView android:text="                                 " />
            </TableRow>

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center" >

                <TextView android:text="                            " />
            </TableRow>

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center" >

                <TextView android:text="                             " />
            </TableRow>

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center" >

                <TextView android:text="                                 " />
            </TableRow>

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center" >

                <ImageButton
                    android:id="@+id/profile_btn"
                    android:layout_width="100dp"
                    android:layout_height="100dp"
                    android:src="@drawable/a1" />

                <TextView android:text=" " />

                <ImageButton
                    android:id="@+id/share_btn"
                    android:layout_width="100dp"
                    android:layout_height="100dp"
                    android:src="@drawable/a2" />
            </TableRow>

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center" >

                <TextView android:text="                              " />
            </TableRow>

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center" >
            </TableRow>

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center" >

                <TextView android:text="                                 " />
            </TableRow>

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center" >

                <ImageButton
                    android:id="@+id/settings_btn"
                    android:layout_width="100dp"
                    android:layout_height="100dp"
                    android:src="@drawable/a3" />

                <TextView android:text="  " />

                <ImageButton
                    android:id="@+id/contacts_btn"
                    android:layout_width="100dp"
                    android:layout_height="100dp"
                    android:src="@drawable/a4" />
            </TableRow>

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center" >

                <TextView android:text="                                 " />
            </TableRow>

            <TableRow
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center" >

                <ImageButton
                    android:id="@+id/exit_btn"
                    android:layout_width="100dp"
                    android:layout_height="100dp"
                    android:src="@drawable/a5" />

                <TextView android:text="  " />

                <ImageButton
                    android:id="@+id/amazon_btn"
                    android:layout_width="100dp"
                    android:layout_height="100dp"
                    android:src="@drawable/amazon" />
            </TableRow>
        </TableLayout>

        <LinearLayout
            android:id="@+id/ban2_mainmenu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:background="@drawable/ban_2" >
        </LinearLayout>

        <LinearLayout
            android:id="@+id/ban1_mainmenu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_alignRight="@+id/ban2_mainmenu"
            android:background="@drawable/ban_1" >
        </LinearLayout>
    </RelativeLayout>

</ScrollView>

在下面这段代码的第一行的java中,我收到错误

 ImageButton amazon = (ImageButton) findViewById(R.id.amazon_btn);
        amazon.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {
                // TODO Auto-generated method stub

                Intent browse = new Intent(Intent.ACTION_VIEW, Uri
                        .parse("http://www.amazon.com/gp/product/B0084FCDKS"));
                startActivity(browse);

            }
        });

错误是

07-12 16:40:22.599: E/AndroidRuntime(1857): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.colony.rpgbluetoothchatlite/com.colony.rpgbluetoothchatlite.Menu_Main}: java.lang.ClassCastException: android.widget.LinearLayout
07-12 16:40:22.599: E/AndroidRuntime(1857): Caused by: java.lang.ClassCastException: android.widget.LinearLayout

4 个答案:

答案 0 :(得分:2)

您可以粘贴完整的logcat错误吗?因为我认为您正在尝试使用Java代码中xml文件中定义的LinearLayouts之一(可能是最后两个线性布局中的一个)并且您尚未正确声明它们。

尝试清理项目并运行一次。有时这种情况发生在Android中,我也注意到了。

答案 1 :(得分:2)

com.colony.rpgbluetoothchatlite.Menu_Main班级......

找出你在哪里调用这样的东西..我做了变量按钮.. 但你的应该是别的......

正在发生的事情是...... R.id.ban1_mainmenuRelativeLayout ...但您正在尝试将其转换为其他类...在这种情况下,我转换为Button class ..这将抛出你所拥有的相同例外......

Button btn1 = findViewById(R.id.ban1_mainmenu);
Button btn2 = findViewById(R.id.ban2_mainmenu);

修复它..

LinearLayout btn1 = (LinearLayout)findViewById(R.id.ban1_mainmenu);
RelativeLayout btn2 = findViewById(R.id.ban2_mainmenu);

答案 2 :(得分:1)

此错误主要是由于错误的类型转换所致。例如下面的代码: 同样的错误在listView中给我带来了麻烦 我正在粘贴代码:

List.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parentAdapter,
                        View view, int position, long id) {
                    // The below line of TextView will generate same problem..
                    TextView clickedView = (TextView) view;
                    Toast.makeText(
                            ActivityName.this,
                            "Item with id [" + id + "] - Position ["
                                    + position + "] - Planet ["
                                    /*+ clickedView.getText()*/ + "]",
                            Toast.LENGTH_SHORT).show();
                }
            });

答案 3 :(得分:0)

这听起来像你需要做的就是一个干净的项目。当您第一次使用scrolView时,有时会发生这种情况。然而,干净的扫描应该可以解决问题。