我试图在像卡片堆叠这样的火种上制造玻璃破碎效果。这些卡工作正常,但我无法将活动上下文转到适配器,因此我可以使用brokenview插件。
我有我的主动,在那个活动中我展示了一个片段,在那个片段上我展示了卡片堆。
在该卡片组上,当用户点击使用此库的低评级按钮时,我想显示一个玻璃破碎动画:
https://github.com/zhanyongsheng/BrokenView
所以在我的适配器getview中,我用上下文设置了断开的视图的上下文 用这一行:
mBrokenView = BrokenView.add2Window((MainActivity)this.getContext());
但是当我按下按钮时,我收到此错误:
ClassCastException: com.mysampleapp.Application cannot be cast to com.mysampleapp.MainActivity
感谢您的帮助。
以下完整代码:
public class SongPreviewCardsDataAdapter extends ArrayAdapter<SongDatabaseMappingAdapter> {
public SongPreviewCardsDataAdapter(Context context, int resource) {
super(context, resource);
}
ImageButton oneStarRating;
BrokenView mBrokenView;
private BrokenTouchListener listener;
@Override
public View getView(int position, final View contentView, ViewGroup parent) {
// Initialise Song Views
final SongDatabaseMappingAdapter item = getItem(position);
TextView songName = (TextView) (contentView.findViewById(R.id.songNameTextView));
songName.setText(item.getSongTitle());
// Initialise Rating Buttons
oneStarRating = (ImageButton) contentView.findViewById(R.id.ratingButton1);
if (item.getOneStarRating()) {
oneStarRating.setImageResource(R.drawable.starfull);
mBrokenView = BrokenView.add2Window((MainActivity)this.getContext());
listener = new BrokenTouchListener.Builder(mBrokenView).build();
songName.setOnTouchListener(listener);
}
答案 0 :(得分:3)
试试这个:
mBrokenView = BrokenView.add2Window((MainActivity)(parent.getContext()));
答案 1 :(得分:1)
试试这个:
mBrokenView = BrokenView.add2Window(contentView.getContext());