Android: 按钮被视为 tableLayout?
Android: Button being treated as tableLayout?
我正在为我的 android 设备编写一个应用程序,它在屏幕底部包含三个按钮。在我的 onCreate
方法中,我使用 findViewById()
将三个 Button
对象设置为其相应的视图。这是我写的代码:
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
的原因。有人有什么想法吗?
尝试清理构建文件夹,然后运行再次构建。
错误意味着您仍然指向带有滚动视图和table布局的布局。而且里面没有按钮。
您可以通过将按钮粘贴到 table 布局中轻松解决此问题,例如
<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>
我正在为我的 android 设备编写一个应用程序,它在屏幕底部包含三个按钮。在我的 onCreate
方法中,我使用 findViewById()
将三个 Button
对象设置为其相应的视图。这是我写的代码:
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
的原因。有人有什么想法吗?
尝试清理构建文件夹,然后运行再次构建。
错误意味着您仍然指向带有滚动视图和table布局的布局。而且里面没有按钮。
您可以通过将按钮粘贴到 table 布局中轻松解决此问题,例如
<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>