2016-08-02 2 views
-1

Прежде всего, хочу сказать, что я начинающий разработчик Android, так что не плачь :) Я делаю приложение для фитнеса, где я хочу иметь 3 гнезда : 1) ListView с элементами группы мышц, 2) ListView упражнений (появляется, когда щелкнуть по элементу из группы мышц ListView), 3) и описание упражнения, чтобы щелкнуть элемент ListView, чтобы перейти в другой ListView

Я создал ListView группы мышц, но я Не знаете, как правильно перейти к другому списку упражнений. Как я понимаю, я должен использовать метод setOnItemClickListener(), а там ids для вызова разных действий (или, возможно, фрагментов) и для перехода по намерениям. Но я думаю, что я ошибаюсь, потому что в этом случае я должен создать много Деяний (для каждого элемента). Итак, скажите, пожалуйста, как я могу реализовать переход на другой экран, нажав на элемент ListView (чтобы не делать действия для каждого элемента). Может быть, некоторые шаблоны или что-то другое (или любые рекомендации по созданию моего приложения).

спасибо заранее :)

+2

Пожалуйста, подумайте над добавлением фрагментов кода на вопрос. Вы также можете прочитать [Как задать хороший вопрос?] (Http://stackoverflow.com/help/how-to-ask) и [Минимальный, полный и проверенный пример] (http: // stackoverflow .com/help/mcve) статьи первые – Dethariel

ответ

0

Вы можете установить три ListViews на тот же макет, изменяя только visibility атрибута:

  <ListView 
      android:id="@+id/listview_1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:visibility="visible"/> 

      <ListView 
      android:id="@+id/listview_2" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:visibility="gone"/> 

      <ListView 
      android:id="@+id/listview_1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:visibility="gone"/> 

setOnItemClickListener Используйте для каждого элемента управления ListView и переключить их видимость, находя их по идентификатору.

listView1.setVisibility(View.VISIBLE); 
listView2.setVisibility(View.GONE); 

Использование GONE вместо INVISIBLE, чтобы ваш взгляд не будет влиять на другие позиционирования взгляды, когда не показано.

Тем не менее, я рекомендую использовать фрагменты. Когда ваше приложение станет больше, вы, вероятно, захотите настроить множество вещей, в зависимости от того, какой список ListView показан, например, панели инструментов, значки, плавающие кнопки и т. Д. Выполнение всего этого программно может дать вам массу головной боли. Они гораздо более гибкие в использовании без необходимости запуска новых действий и по-прежнему сохраняют ваш код.

Как вы сами сказали, иногда мы не хотим создавать новую активность только для нескольких изменений, но все же этих изменений достаточно, чтобы вы могли подумать о ее создании. Фрагменты помогают вам в этом, и хотя они немного запутывают сначала, они, безусловно, являются способом многого.

+0

Спасибо за ваш ответ. Я думал о ViewPager, чтобы не дублировать фрагменты (также я не использовал его раньше). Правильно ли, как вы думаете? что я уже понял: 1) создал MainActivity с NavigationView и MouscleGroupFragment, связанный с этим действием (есть список с разной группой мышц) 2) установите setOnItemClickListener() в listview, где создано намерение от MainActivity до ExcerciseActivity) , поэтому, когда я нажал на любой элемент, я перехожу к упражнению 3) создал ExerciseListFragment и связан с ExerciseActivity.In фрагмент решил использовать ViewPager – Ilya

+0

Правильно ли это решение? Извините за столь подробный вопрос, но я новичок и не получил никого, кто может помочь. Извините за мой чистый английский тоже :) – Ilya

+0

ViewPager - это потрясающе и обязательно должно работать с вашей идеей двух списков. Я бы поместил подробности упражнений на отдельный экран, чтобы он не казался свободной информацией, когда ваш пользователь просто возился с вашим приложением.Показывать детали только тогда, когда пользовательский запрос на это (нажав), кажется, лучше подходит –

Смежные вопросы