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()));
我正在尝试在卡片堆之类的火种上制作玻璃破碎效果。卡片工作正常,但我无法将 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()));