Я пытаюсь сделать эффект разбития стекла на трут, как карточный стол. Карты работают нормально, но мне не удается получить контекст активности в адаптере, чтобы я мог использовать плагин breakview.Android: Получите контекст активности в класс адаптера массива
У меня есть моя основная активность, на этом мероприятии я показываю фрагмент, и на этом фрагменте я показываю карточный стол.
На этой стопку карты я хочу показать разбитое стекло анимации, когда пользователь нажимает на кнопку низкого рейтинга с помощью этой библиотеки:
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);
}
Пара вопросов здесь - почему бы вам явно нужен контекст MainActivity для сломанный вид? Что вы передаете как параметр контекста вашего конструктора адаптера? –
Я не уверен, что вы имеете в виду в примере ion github brokenView = BrokenView.add2Window (контекст); а затем в ошибках, которые я получал add2window (android.app.Activity), не может быть применен к контексту содержимого Android. Поэтому я решил, что для этого нужен контекст активности. –