Android:按钮被视为tableLayout?

时间:2015-07-05 23:08:31

标签: android button tablelayout classcastexception

我为我的Android设备编写了一个应用程序,其中包含屏幕底部的三个按钮。在我的onCreate方法中,我使用Button将三个findViewById()个对象设置为相应的视图。这是我写的代码:

public class MainActivity extends AppCompatActivity {

    Button btnAdd = null;
    Button btnEdit = null;
    Button btnDelete = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnAdd = (Button) findViewById(R.id.btnAdd);
        btnEdit = (Button) findViewById(R.id.btnEdit);
        btnDelete = (Button) findViewById(R.id.btnDelete);

        init(getApplicationContext());

        btnAdd.setOnClickListener(new OnClickListener() {
            public void onClick(View view) {
                EventWriter.writeToFile(eventFile, getApplicationContext());
            }
        });
    }

    ...

}

我的XML如下所示,按钮元素在RelativeLayout

中声明
<Button
    android:id="@+id/btnDelete"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:layout_alignEnd="@+id/scrollView1"
    android:layout_alignRight="@+id/scrollView1"
    android:layout_alignParentBottom="true"
    android:text="@string/txtBtnDelete" />

<Button
    android:id="@+id/btnAdd"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:layout_alignStart="@+id/scrollView1"
    android:layout_alignLeft="@+id/scrollView1"
    android:layout_alignParentBottom="true"
    android:text="@string/txtBtnAdd" />

<Button
    android:id="@+id/btnEdit"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:text="@string/txtBtnEdit" />

当我尝试在Eclipse中使用模拟器运行应用程序时,我在第36行(btnDelete = (Button) findViewById(R.id.btnDelete);)收到以下LogCat错误:

Caused by: java.lang.ClassCastException: android.widget.TableLayout cannot be cast to android.widget.Button

我之前的代码中有一个TableLayout(位于ScrollView内),但不包含按钮:

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="wrap_content"
    android:layout_height="300dp"
    android:layout_alignParentStart="true"
    android:layout_alignParentLeft="@+id/actvSearchEvent"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/actvSearchEvent"
    android:layout_above="@+id/btnAdd"
    android:layout_marginTop="32dp"
    android:background="@drawable/scrollview_border" >

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

    </TableLayout>

</ScrollView>

我不知道它在哪里,我试图将TableLayout投射到Button。有人有什么想法吗?

2 个答案:

答案 0 :(得分:1)

尝试执行干净整洁的构建文件夹,然后再次运行构建。

答案 1 :(得分:-1)

错误意味着您仍然使用滚动视图和表格布局指向布局。而且里面没有按钮。

您可以通过在表格布局中粘贴按钮来轻松解决此问题,例如

<TableLayout...>
    <Button
        android:id="@+id/btnDelete"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_alignEnd="@+id/scrollView1"
        android:layout_alignRight="@+id/scrollView1"
        android:layout_alignParentBottom="true"
        android:text="@string/txtBtnDelete" />
    <Button
        android:id="@+id/btnAdd"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/scrollView1"
        android:layout_alignLeft="@+id/scrollView1"
        android:layout_alignParentBottom="true"
        android:text="@string/txtBtnAdd" />
    <Button
        android:id="@+id/btnEdit"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:text="@string/txtBtnEdit" />
</TableLayout>