2015-02-10 30 views
1

我使用class java来定制圆形图像按钮。现在我想将它转换为ImageButton。但是给我错误ClassCastException。我需要帮助 ! 如果你有决心,请给我。 谢谢。如何将ImageButton自定义类转换为ImageButton

我用

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) 

回答

1

不要投的对象为ImageButton,而使用CircleButton

只要您的CircleButton自定义视图扩展了ImageButton,ImageButton的所有功能都将存在。

请使用以下内容。

CircleButton btnPlay = (CircleButton) rootView.findViewById(R.id.btnPlay); 
btnPlay.setImageResource(R.drawable.ic_pause1); 
+0

没有解决方案吗? – 2015-02-10 12:37:16

+0

已给出解决方案。 – 2015-02-10 12:39:42

+0

好的...谢谢你的帮助:) .. – 2015-02-10 12:40:16

0

导致失败的唯一原因是CircleButton没有扩展ImageButton。否则,你不会得到这个错误。仔细检查您正在扩展的ImageButton的名称以及您正在投射的ImageButton的名称。你错过了一些东西。

+0

奥克..谢谢你的帮助。@Duncan给了我一个解决方案:) – 2015-02-10 12:45:19

相关问题