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