Страница 1 из 1

listView, возможно

Добавлено: 25 фев 2014, 12:55
IriDolG
Работаю над игрой и столкнулась с такой проблемой.
На игровом экране выводятся строки с описанием предмета, а игрок выбирает из предложенных ему нескольких вариантов предметов (в виде кнопок или listView) нужный. Как можно связать строки и предмет из списка? Можно ли, учитывая количество уже выведенных строк с описанием, показывать ту или иную информацию игроку? И последнее - как сделать так, чтобы описания предметов (соответственно, и список самих предметов) выводились случайно?

Re: listView, возможно

Добавлено: 25 фев 2014, 13:56
Foenix
вы уроки вообще не читали?

Re: listView, возможно

Добавлено: 25 фев 2014, 14:37
IriDolG
Читала, почти все.

Re: listView, возможно

Добавлено: 25 фев 2014, 21:07
Foenix
странно..

Re: listView, возможно

Добавлено: 26 фев 2014, 05:14
IriDolG
С помощью какого метода\ов вышенаписанное делается? Чтобы более пристально мне изучить.

Re: listView, возможно

Добавлено: 26 фев 2014, 06:56
Foenix
1 что нужно сделать - определиться с тем, что вам нужно. Сколько и каких предметов, какими свойствами они обладают, будет ли меняться их количество, куда внести информацию о них - в массив строк, таблицу базы данных или еще куда-то, как вывести их - в виде листвью или кнопочек.. в каком виде будет выдаваться информация..
Я этого пока из вашего описания не вижу, поэтому ответить на вопрос - сложно.
Если навскидку почитать - уроки о листвью, хранении данных, диалоговых окнах и активити.

Re: listView, возможно

Добавлено: 26 фев 2014, 11:18
IriDolG
Нужно каким-то образом сгруппировать свойства по массивам строк (по 5 на предмет), чтобы при нажатии на предмет из listView игрок информировался, правильно он указал или нет. Как вот мне связать массивы строк свойств с массивами строк предметов? Или другими словами, чтобы каждый предмет имел 5 свойств. В уроках не нашла подобной информации((

Re: listView, возможно

Добавлено: 26 фев 2014, 11:37
adarash
IriDolG писал(а):Нужно каким-то образом сгруппировать свойства по массивам строк (по 5 на предмет), чтобы при нажатии на предмет из listView игрок информировался, правильно он указал или нет. Как вот мне связать массивы строк свойств с массивами строк предметов? Или другими словами, чтобы каждый предмет имел 5 свойств. В уроках не нашла подобной информации((
Это не уроки. Это ООП. ООП здесь не учат.
Что тебе нужно:
1. Создать класс с свойствами нужными.

Код: Выделить всё

public class LotSimple {

	public String name, pic, url, price;
	public int num;

	public LotSimple(String name, String pic, String url, String price, int num) {
		this.name = name;
		this.pic = pic;
		this.url = url;
		this.price = price;
		this.num = num;
	}
}
что - то в этом роде.

2. При создании вьюшки в адаптере создать и присвоить ему подобный класс
создание:

Код: Выделить всё

LotSimple date = new LotSimple(name, pic, url, price, num)
присвоение:

Код: Выделить всё

v.setTag(date);
3. Когда на нее нажимаешь можешь получить этот класс

Код: Выделить всё

public void onClick(View v) {
	LotSimple date = (LotSimple) v.getTag();
	if (a != null) {
		 //и здесь бери с этого класса все свойства которые тебе нужны и делай что тебе хочется
	}
}

Re: listView, возможно

Добавлено: 26 фев 2014, 12:46
IriDolG
Спасибо, интересно! А как вообще получается рандомность вызова свойств? Что то вроде генератора случайных чисел? Для того, чтобы при создании активити каждый раз появлялся разный текст из массивов.

Re: listView, возможно

Добавлено: 26 фев 2014, 13:43
adarash
Рандомность - это у тебя в коде. Какой объект присвоишь - такой и получишь.

Re: listView, возможно

Добавлено: 26 фев 2014, 14:41
IriDolG
Так ведь есть ГСЧ - его каким-то образом прописывают.
И такой еще вопрос - реально ли при создании GameActivity сразу же записать в БД данные свойств и предметов, возможно, в этом будет решение проблемы?

Re: listView, возможно

Добавлено: 26 фев 2014, 15:03
adarash
IriDolG писал(а):Так ведь есть ГСЧ - его каким-то образом прописывают.
И такой еще вопрос - реально ли при создании GameActivity сразу же записать в БД данные свойств и предметов, возможно, в этом будет решение проблемы?
Так они у тебя рандомно должны генерится? или уже готовые связать? чето я вообще суть задачи не понимаю.

Re: listView, возможно

Добавлено: 26 фев 2014, 15:07
IriDolG
Они готовые, но очередность появления должна быть рандомной

Re: listView, возможно

Добавлено: 26 фев 2014, 15:15
adarash
IriDolG писал(а):Они готовые, но очередность появления должна быть рандомной
В чем проблема перемешать готовый массив.

Код: Выделить всё

public static void mix(int[] b) {
		Random rnd = new Random();
		for (int i = 1; i < b.length; i++) {
			int j = rnd.nextInt(i);

			int temp2 = b[i];
			b[i] = b[j];
			b[j] = temp2;
		}
	}
Таким же точно "макаром" можно любой массив объектов перемешать. Замени "int" на то, что тебе нужно и вперед, с песней.