我为我的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
。有人有什么想法吗?
答案 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>