Как говорится в названии, у меня есть LinearLayout
, который я использую как часть элемента ListView
. Когда я нажимаю на элемент, мне нужно изменить видимость его LinearLayout
от View.GONE
до View.VISIBLE
(или наоборот).Keep LinearLayout ушел при повторном использовании Посмотреть его в ListView
Проблема заключается в том, что когда я нажимаю на первый элемент (теперь его макет виден), и чем прокручивается список вниз, элемент, который повторно использует первый элемент, имеет видимость видимости макета, равную View.VISIBLE
, точно так же, как и первый пункт сделал, хотя он должен был быть View.GONE
. Остальные отображаемые элементы, которые не используют повторное использование первого, работают так, как они должны.
Я четко понимаю, почему это происходит, и я думаю, мне нужно, чтобы сохранить видимость LinearLayout
для каждого отдельного пункта в моем ListView
(не только в данный момент отображается), а затем использовать его в моем getView()
методе. Вы, ребята, знаете, как мне это сделать?
Часть кода из моей деятельности:
public class MainActivity extends AppCompatActivity {
ListView alarmClocksListView;
ArrayList<AlarmClock> alarmClocksList;
protected void onCreate(Bundle savedInstanceState) {
alarmClocksList = new ArrayList<>();
alarmsArrayAdapter = new AlarmsArrayAdapter(this, alarmClocksList);
alarmClocksListView.setAdapter(alarmsArrayAdapter);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//some code
alarmClocksList.add(new AlarmClock());
alarmsArrayAdapter.notifyDataSetChanged();
}
}
Не могли бы вы опубликовать адаптерами код и код активности, а? –