@newdancer

Как передать arraylist во фрагмент?

Как передать arraylist во фрагмент?
В MainActivity создаю и частично заполняю
ArrayList<Wishbone> wishbones = new ArrayList<Wishbone>();

после чего передаю его в адаптер
mWishbonePagerAdapter = new WishbonePagerAdapter(getSupportFragmentManager(), this, wishbones);

Адаптер унаследован от FragmentPagerAdapter
Во фрагменте идет заполнение данных. В каждом item идет 2 картинки на которых через canvas рисуется анимация при нажатии пользователя на одной из двух картинок. Для анимации нужен сам imageview для этого хочу его записать изменив arraylist. Как это сделать?
ArrayList структурирован классом так:
public class Wishbone
{
	public int getImgLeft() {
		return imgLeft;
	}

	public void setImgLeft(int imgLeft) {
		this.imgLeft = imgLeft;
	}

	public int getImgRight() {
		return imgRight;
	}

	public void setImgRight(int imgRight) {
		this.imgRight = imgRight;
	}

	public int getVubRez() {
		return vubRez;
	}

	public void setVubRez(int vubRez) {
		this.vubRez = vubRez;
	}

	public int getLeftRez() {
		return leftRez;
	}

	public void setLeftRez(int leftRez) {
		this.leftRez = leftRez;
	}

	public int getRightRez() {
		return rightRez;
	}

	public void setRightRez(int rightRez) {
		this.rightRez = rightRez;
	}

	public int getLeftVote() {
		return leftVote;
	}

	public void setLeftVote(int leftVote) {
		this.leftVote = leftVote;
	}

	public int getRightVote() {
		return rightVote;
	}

	public void setRightVote(int rightVote) {
		this.rightVote = rightVote;
	}

	public ImageView getImageLeft() {
		return imageLeft;
	}

	public void setImageLeft(ImageView imageLeft) {
		this.imageLeft = imageLeft;
	}

	public ImageView getImageRight() {
		return imageRight;
	}

	public void setImageRight(ImageView imageRight) {
		this.imageRight = imageRight;
	}
	int imgLeft;
	int imgRight;
	int vubRez;
	int leftRez;
	int rightRez;
	int leftVote;
	int rightVote;
	ImageView imageLeft;
	ImageView imageRight;

	Wishbone(int _imgLeft, int _imgRight, int _vubRez, int _leftRez, int _rightRez, int _leftVote, int _rightVote, ImageView _imageLeft, ImageView _imageRight) {
		imgLeft = _imgLeft;
		imgRight = _imgRight;
		vubRez = _vubRez;
		leftRez = _leftRez;
		rightRez = _rightRez;
		leftVote = _leftVote;
		rightVote = _rightVote;
		imageLeft = _imageLeft;
		imageRight = _imageRight;
	}
}
  • Вопрос задан
  • 540 просмотров
Пригласить эксперта
Ответы на вопрос 1
SanchelliosProg
@SanchelliosProg
Java, Android, Software Testing
Ну, во первых, класс Wishbone должен реализовывать интерфейс Parcelable . AndroidStudio должна легко в этом помочь, ну, плюс покопайся немного в документации как этот интерфейс использовать. Иначе, ты не сможешь запихнуть этот ArrayList в Intent, в данном случае.

Далее всё просто. Например, создаёшь коллекцию ArrayList, передаёшь её в Intent в качестве Extra (метод putExtra()).

В целевой Activity/Fragment парсишь Intent, и выдёргиваешь свою коллекцию с помощью метода getParcelableArrayList("КЛЮЧ_КОТОРЫЙ_ТЫ_УКАЗЫВАЛ_КОГДА_ПОМЕЩАЛ_КОЛЛЕКЦИЮ_В_EXTRA")
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы