如何将 ImageButton 自定义 class 转换为 ImageButton
How to convert ImageButton custom class to ImageButton
我使用 class java 来自定义圆形图像按钮。现在我想将它转换为 ImageButton。但是给我错误ClassCastException。我需要帮助 !
如果你有决心请给我。
谢谢。
我用
rootView.findViewById(R.id.btnPlay).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
工作!但我想要 ImageButton。
Java代码:
ImageButton btnPlay = (ImageButton) rootView.findViewById(R.id.btnPlay);
btnPlay.setImageResource(R.drawable.ic_pause1);
代码XML:
<android.tadev.blogradio.support.CircleButton
android:id="@+id/btnPlay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:contentDescription="@string/clear"
android:src="@drawable/ic_play1" />
Logcat
02-10 12:19:33.798: E/AndroidRuntime(1377): FATAL EXCEPTION: main
02-10 12:19:33.798: E/AndroidRuntime(1377): java.lang.ClassCastException: android.tadev.blogradio.support.CircleButton cannot be cast to android.widget.ImageButton
02-10 12:19:33.798: E/AndroidRuntime(1377): at android.tadev.blogradio.main.PlayBlog.onCreateView(PlayBlog.java:91)
02-10 12:19:33.798: E/AndroidRuntime(1377): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1786)
02-10 12:19:33.798: E/AndroidRuntime(1377): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
02-10 12:19:33.798: E/AndroidRuntime(1377): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
02-10 12:19:33.798: E/AndroidRuntime(1377): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
02-10 12:19:33.798: E/AndroidRuntime(1377): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
不要将对象转换为 ImageButton
,而是使用 CircleButton
。
只要您的 CircleButton 自定义视图扩展了 ImageButton,ImageButton 的所有功能都会存在。
使用以下内容。
CircleButton btnPlay = (CircleButton) rootView.findViewById(R.id.btnPlay);
btnPlay.setImageResource(R.drawable.ic_pause1);
失败的唯一原因是 CircleButton 没有扩展 ImageButton。否则你不会得到这个错误。仔细检查您要扩展的 ImageButton 的确切包名称以及您要投射到的那个。你错过了一些东西。
我使用 class java 来自定义圆形图像按钮。现在我想将它转换为 ImageButton。但是给我错误ClassCastException。我需要帮助 ! 如果你有决心请给我。 谢谢。
我用
rootView.findViewById(R.id.btnPlay).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
工作!但我想要 ImageButton。
Java代码:
ImageButton btnPlay = (ImageButton) rootView.findViewById(R.id.btnPlay);
btnPlay.setImageResource(R.drawable.ic_pause1);
代码XML:
<android.tadev.blogradio.support.CircleButton
android:id="@+id/btnPlay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:contentDescription="@string/clear"
android:src="@drawable/ic_play1" />
Logcat
02-10 12:19:33.798: E/AndroidRuntime(1377): FATAL EXCEPTION: main
02-10 12:19:33.798: E/AndroidRuntime(1377): java.lang.ClassCastException: android.tadev.blogradio.support.CircleButton cannot be cast to android.widget.ImageButton
02-10 12:19:33.798: E/AndroidRuntime(1377): at android.tadev.blogradio.main.PlayBlog.onCreateView(PlayBlog.java:91)
02-10 12:19:33.798: E/AndroidRuntime(1377): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1786)
02-10 12:19:33.798: E/AndroidRuntime(1377): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
02-10 12:19:33.798: E/AndroidRuntime(1377): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
02-10 12:19:33.798: E/AndroidRuntime(1377): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
02-10 12:19:33.798: E/AndroidRuntime(1377): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
不要将对象转换为 ImageButton
,而是使用 CircleButton
。
只要您的 CircleButton 自定义视图扩展了 ImageButton,ImageButton 的所有功能都会存在。
使用以下内容。
CircleButton btnPlay = (CircleButton) rootView.findViewById(R.id.btnPlay);
btnPlay.setImageResource(R.drawable.ic_pause1);
失败的唯一原因是 CircleButton 没有扩展 ImageButton。否则你不会得到这个错误。仔细检查您要扩展的 ImageButton 的确切包名称以及您要投射到的那个。你错过了一些东西。