ボタンのクリックで開く引き出しを1つ追加し、テキスト、ボタンを表示できるという点で小さなプログラムを実行していますが、その引き出しにImageButtonを追加したい場合、エラーが発生します。
public class slidingDrawerDemo extends Activity implements OnClickListener {
ImageButton slideButton, b1, b2;
SlidingDrawer slidingDrawer;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
slideButton = (ImageButton) findViewById(R.id.slideButton);
slidingDrawer = (SlidingDrawer) findViewById(R.id.SlidingDrawer);
b1 = (ImageButton) findViewById(R.id.imageButton1);
b2 = (ImageButton) findViewById(R.id.imageButton2);
b1.setOnClickListener(this);
b2.setOnClickListener(this);
OnClickListener(this);
slidingDrawer.setOnDrawerOpenListener(new OnDrawerOpenListener() {
@Override
public void onDrawerOpened() {
slideButton.setBackgroundResource(R.drawable.closearrow);
}
});
slidingDrawer.setOnDrawerCloseListener(new OnDrawerCloseListener() {
@Override
public void onDrawerClosed() {
slideButton.setBackgroundResource(R.drawable.openarrow);
}
});
}
@Override
public void onClick(View v) {
Button b = (Button) v;
Toast.makeText(slidingDrawerDemo.this, b.getText() + " Clicked",
Toast.LENGTH_SHORT).show();
}
}
activity_main.xml
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="bottom"
android:orientation="vertical" >
<SlidingDrawer
android:id="@+id/SlidingDrawer"
android:layout_width="500dp"
android:layout_height="fill_parent"
android:background="@layout/border"
android:content="@+id/contentLayout"
android:handle="@+id/slideButton"
android:orientation="vertical"
android:padding="5dip"
android:scrollbarStyle="insideInset" >
<Button
android:id="@+id/slideButton"
android:layout_width="158dp"
android:layout_height="100dp"
android:background="@drawable/closearrow" >
</Button>
<LinearLayout
android:id="@+id/contentLayout"
android:layout_width="fill_parent"
android:layout_height="667dp"
android:gravity="center"
android:orientation="vertical"
android:padding="5dip" >
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/imagesb" />
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="405dp"
android:layout_height="200dp"
android:src="@drawable/imagesa" />
</LinearLayout>
</SlidingDrawer>
</LinearLayout>
エラーは、 java.lang.ClassCastException: android.widget.Button を android.widget.ImageButton にキャストできません