我为我的一个活动设计了布局但是我得到了奇怪的错误。这是一个简单的活动,实际上它是包含图像按钮的主菜单活动。
"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
答案 0 :(得分:2)
您可以粘贴完整的logcat错误吗?因为我认为您正在尝试使用Java代码中xml文件中定义的LinearLayouts之一(可能是最后两个线性布局中的一个)并且您尚未正确声明它们。
尝试清理项目并运行一次。有时这种情况发生在Android中,我也注意到了。
答案 1 :(得分:2)
在com.colony.rpgbluetoothchatlite.Menu_Main
班级......
找出你在哪里调用这样的东西..我做了变量按钮.. 但你的应该是别的......
正在发生的事情是...... R.id.ban1_mainmenu
是RelativeLayout
...但您正在尝试将其转换为其他类...在这种情况下,我转换为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时,有时会发生这种情况。然而,干净的扫描应该可以解决问题。