Я пытаюсь изменить видимость каждого линейного макета внутри адаптера, кроме выбранного.
LinearLayout mylinearlayout = row.FindViewById<LinearLayout>(Resource.Id.test);
btn.Click += delegate
{
for (int i = 0; i < parent.ChildCount; i++)
{
if (i == position)
{
mylinearlayout .GetChildAt(i).Visibility = ViewStates.Visible;
}
else
{
mylinearlayout .GetChildAt(i).Visibility = ViewStates.Gone;
}
}
I get error System.NullReferenceException: Object reference not set to an instance of an object.
у меня есть скрытый макет под моим основным макетом в той же строке. Мне нужно, чтобы на показ были только все отобранные. CheckImage
Вы используете класс Model или POJO для ListView? Я подозреваю, что с этим очень меньшим количеством кода проблема в том, что ListView перерабатывает представление, которое не отображается на экране, и, следовательно, вы получаете исключение NullReferenceException.
Я использую кастомный адаптер. Если я буду использовать parent вместо linear, работает, но он делает невидимыми всю мою строку, которая мне не нужна. Мне нужна только конкретная линейка, чтобы сделать невидимым
Как я могу изменить видимость макета примера с помощью динамического положения? внутри кастомного адаптера? ss.GetChildAt (tesss) .Visibility = ViewStates.Gone;
Не могли бы вы предоставить больше кода? Где ваша кнопка в списке или нет? Как получить position? Пожалуйста, предоставьте дополнительную информацию.




Почему вы зацикливаетесь на
parent.ChildCountи получаете доступ к дочернему элементуmylinearlayoutвнутри цикла?