Android:将活动上下文添加到数组适配器类中

时间:2016-06-06 07:38:05

标签: android android-animation android-arrayadapter android-context

我试图在像卡片堆叠这样的火种上制造玻璃破碎效果。这些卡工作正常,但我无法将活动上下文转到适配器,因此我可以使用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);

        }

2 个答案:

答案 0 :(得分:3)

试试这个:

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

答案 1 :(得分:1)

试试这个:

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