2016-08-02 12 views
-1

Zunächst möchte ich sagen, dass ich ein Anfänger in Android-Entwicklung bin, also nicht schwören :) Ich mache eine Fitness-App, wo ich 3 Nesting haben möchte : 1) ListView mit Muskelgruppe Artikel, 2) ListView von Übungen (erscheint, wenn auf Element aus der Muskelgruppe ListView klicken), 3) und Beschreibung der Übungklicken Sie auf ListView Element, um zu einem anderen ListView zu gehen

Ich habe eine ListView der Muskelgruppe gemacht, aber ich don Ich weiß nicht, wie man zu einer anderen Listenansicht von Übungen geht. Wie ich verstehe, muss ich Methode setOnItemClickListener() verwenden, und dort durch ids verschiedene Aktivitäten (oder vielleicht auch Fragmente) zu nennen und den Übergang von Absichten zu machen. Aber ich denke, ich liege falsch, denn in diesem Fall muss ich viele Aktivitäten (für jeden Gegenstand) erstellen. Also, sagen Sie mir bitte, wie ich kann durch einen Klick auf den Artikel von Listview (nicht zu machen Aktivitäten für jedes Element) .maybe, einige Muster oder etwas anderes (oder irgendwelche Empfehlungen über den Aufbau meiner app) zu einem anderen Bildschirm Schalt realisieren.

danken Ihnen im Voraus :)

+2

Bitte beachten Sie, Schnipsel des Codes auf die Frage hinzufügen. Vielleicht möchten Sie auch das [Wie frage ich eine gute Frage?] (Http://stackoverflow.com/help/how-to-ask) und [Minimales, vollständiges und verifizierbares Beispiel] (http: // stackoverflow .com/help/mcve) Artikel zuerst – Dethariel

Antwort

0

Sie die drei Listviews auf dem gleichen Layout nur festlegen können, die visibility Attribut zu ändern:

  <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"/> 

Verwenden setOnItemClickListener für jede Listview und ihre Sichtbarkeit umschalten, indem sie zu finden nach ID.

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

Verwenden GONE statt INVISIBLE so nicht Ihre Ansicht andere Ansichten Positionierung beeinflussen, wenn sie nicht gezeigt.

Dennoch empfehlen Sie I-Fragmente zu verwenden. Wenn Ihre App größer wird, werden Sie wahrscheinlich viele Dinge anpassen müssen, je nachdem, welches ListView angezeigt wird, wie Symbolleisten, Icons, schwebende Schaltflächen usw. All das programmatisch zu tun, könnte Ihnen jede Menge Kopfschmerzen bereiten. Sie sind viel flexibler zu verwenden, ohne dass Sie neue Aktivitäten starten müssen und Ihren Code dennoch beibehalten.

wie Sie selbst gesagt, manchmal wollen wir nicht eine neue Aktivität nur für ein paar Änderungen zu schaffen, aber doch diese Änderungen sind genug, um Sie zu schaffen, man denken zu machen. Fragmente helfen dir dabei, und obwohl sie am Anfang etwas verwirrend sind, sind sie definitiv der Weg zu vielen Gelegenheiten.

+0

Vielen Dank für Ihre Antwort. Ich habe über ViewPager nachgedacht, um Fragmente nicht zu duplizieren (auch ich habe es vorher nicht benutzt). Ist es richtig, wie denkst du? was ich bereits realisiert habe: 1) erstellt eine MainActivity mit NavigationView und MouscleGroupFragment verbunden mit dieser Aktivität (es gibt eine Listenansicht mit verschiedenen Muskelgruppen) 2) setOnItemClickListener() zu listview, wo eine Absicht von MainActivity zu ExcerciseActivity erstellt wurde) , so dass, wenn ich auf ein beliebiges Element geklickt haben, gehe ich Tätigkeit auszuüben 3) erstellt ExerciseListFragment und mit ExerciseActivity.In Fragment verknüpft entschieden ViewPager – Ilya

+0

Ist es richtige Entscheidung auf nicht zu benutzen? Sorry für so detaillierte Frage, aber ich bin ein Anfänger und habe niemanden, der helfen kann. Sorry für mein reines Englisch auch :) – Ilya

+0

ViewPager ist genial und sollte definitiv mit Ihrer Zwei-Liste-Idee arbeiten. Ich würde die Übungsdetails nur auf einem separaten Bildschirm ablegen, so dass es nicht wie eine lockere Information erscheint, wenn Ihr Benutzer gerade mit Ihrer App rumhängt.Zeige die Details nur dann, wenn der Benutzer danach (durch Klicken) besser zu passen scheint –