2016-05-23 6 views
0

エラーは、これらのコードに生成さにキャストすることができない。 setBadgeCount(本、アイコン、 "0")。ここjava.lang.ClassCastExceptionが:android.graphics.drawable.BitmapDrawableはandroid.graphics.drawable.LayerDrawable

私のコードです:あなたはあなたのMenuItem戻っていないBitmapDrawableのでClassCastExceptionを取得

MenuItem itemCart = menu.findItem(R.id.action_cart); 
    LayerDrawable icon = (LayerDrawable) itemCart.getIcon(); 

    // Update LayerDrawable's BadgeDrawable 

    setBadgeCount(this,icon ,"0"); 
+0

itemCart.getIcon()はLayerDrawableではなくBitmapDrawableを返します –

+0

インターフェイス 'Drawable'によって' icon'を参照したくないですか? – CptBartender

答えて

2

、あなたがBitmapDrawableからLayerDrawableを作成することができますMenuItem

から入手この回答(https://stackoverflow.com/a/20138871/4142087)、または公式によると、 documentationこのようにすることができます:

BitmapDrawable iconBitmap = (BitmapDrawable) itemCart.getIcon(); 
LayerDrawable iconLayer = new LayerDrawable(new Drawable [] { iconBitmap }); 
setBadgeCount(this, iconLayer, "0"); 
+0

ありがとうございました... –

+0

java.lang.NullPointerExceptionが生成されました。どうすればよいですか? –

+0

コードを投稿してください。どこにNPEがありますか? –

関連する問題