toxa_1995
@toxa_1995
Начинающий...

Как использовать одно активити с одним ListView для многих array?

Есть ListView1, по нажатию которого появляется второе Activity с одним ListView2. Как мне передавать в это LIstView2 разные array? То есть нажал на item1, получил один array, нажала на item2, получил второй array.
  • Вопрос задан
  • 90 просмотров
Пригласить эксперта
Ответы на вопрос 2
gim0
@gim0
Java, Android, Python
Перед вызовом startActivity, добавь данные в Intent одним из этих методов (в зависимости от того, какого типа значения тебе нужно передать):
Intent#putIntegerArrayListExtra
Intent#putStringArrayListExtra
Intent#putParcelableArrayListExtra

Затем во втором Activity достаёшь переданные данные по ключам:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        // Достаёшь и используешь данные из extras
    }
}

См. Intents and Intent Filters
Ответ написан
@red-barbarian
По нормальному нужно разделить слой вьюшек и слой данных. Хотя бы примитивно.
Т.е. сделать Activity1, Actyvity2 и некий класс который будет предоставлять данные. Например назовем provider.
Итог.
Activity1 заполняется списком provider.getList1()
при выборе элемента 1 вызывает Actyvity2, бросая через invent item1
При запуске Activity2, вытягиваем item1 из intent, и заполняем listview списком provider.getList2(item1)
идея - активити отдельно, списки отдельно.
Также можно рассмотреть не старты активити, а использовать фрагменты. Но конечно, если задача позволяет.
Ответ написан
Ваш ответ на вопрос

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

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