Android: 获取 activity 上下文到数组适配器 class

Android: Get activity context into array adapter class

我正在尝试在卡片堆之类的火种上制作玻璃破碎效果。卡片工作正常,但我无法将 activity 上下文输入适配器,因此我可以使用 brokenview 插件。

我有我的主activity,在上面activity我展示了一个片段,在那个片段上我展示了卡片组。

在该卡片堆上,我想在用户使用此库单击低评级按钮时显示玻璃破碎动画:

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);

        }

试试这个:

mBrokenView = BrokenView.add2Window(contentView.getContext());

试试这个:

mBrokenView = BrokenView.add2Window((MainActivity)(parent.getContext()));