public class ExpAdapter : BaseExpandableListAdapter
{
private int seed = 1000;
public override View GetChildView(int groupPosition, int childPosition, bool isLastChild, View convertView, ViewGroup parent)
{
if (convertView == null)
{
LayoutInflater inflater = (LayoutInflater) context.GetSystemService(Context.LayoutInflaterService);
convertView = inflater.Inflate(Resource.Layout.inspection_row_2, null);
}
int currentID;
Random randomizer = new Random(seed);
TextView question = (TextView) convertView.FindViewById(Resource.Id.questionText);
RadioGroup radio = (RadioGroup) convertView.FindViewWithTag("actionGroup");
currentID = randomizer.Next(1,101);
radio.Id = currentID;
RadioButton pass = (RadioButton) convertView.FindViewWithTag("passed");
currentID = randomizer.Next(1,101);
pass.Id = currentID;
RadioButton fail = (RadioButton) convertView.FindViewWithTag("failed");
currentID = randomizer.Next(1,101);
fail.Id = currentID;
RadioButton correct = (RadioButton)convertView.FindViewWithTag("corrected");
currentID = randomizer.Next(1,101);
correct.Id = currentID;
RadioButton na = (RadioButton)convertView.FindViewWithTag("na");
currentID = randomizer.Next(1,101);
na.Id = currentID;
string[][] items = questions.childItems();
question.Text = items[groupPosition][childPosition];
seed++;
return convertView;
}
}
Используя точку останова для выполнения вышеприведенного, currentID = 1 на протяжении всего выполнения. Вышеупомянутый метод вызывается неоднократно, так как MonoDroid создает дочернюю группу элементов управления под родительской группой, а currentID равен ALWAYS = 1. Я также пытался создать currentID и randomizer в качестве частных статических переменных во всем классе. Тот же результат.
РЕДАКТИРОВАТЬ: я попытался создать новые экземпляры Random с начальным значением, которое отличалось для каждого вызова GetChildView. Код отредактирован выше, чтобы показать, как я это сделал. Тем не менее значение currentID всегда равно 1. Ниже приведен снимок экрана с информацией для рандомизатора в Locals. Эта информация выглядит одинаково, независимо от того, каков начальный номер. ???