Fragmenty
377
jesteś tutaj
Zaktualizowany kod klasy WorkoutListFragment
Zaktualizowaliśmy kod klasy
WorkoutListFragment
i zaimplementowaliśmy
w nim wyświetlanie nazw treningów na liście. Wprowadź wyróżnione zmiany
do kodu swojej aplikacji:
package com.hfad.trenazer;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
public class WorkoutListFragment extends ListFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String[] names = new String[Workout.workouts.length];
for (int i = 0; i < names.length; i++) {
names[i] = Workout.workouts[i].getName();
}
ArrayAdapter<String> adapter = new ArrayAdapter<>(
inflater.getContext(), android.R.layout.simple_list_item_1,
names);
setListAdapter(adapter);
return super.onCreateView(inflater, container, savedInstanceState);
}
}
app/src/main
WorkoutList
Fragment.java
Trenazer
java
com.hfad.trenazer
Teraz, kiedy fragment
WorkoutListFragment
wyświetla już listę nazw
treningów, dodajmy go do aktywności
MainActivity
.
Używamy tej klasy
w metodzie onCreate().
Tworzymy tablicę łańcuchów znaków
z nazwami treningów.
Pobieramy kontekst
z obiektu LayoutInflater.
Tworzymy adapter
ArrayAdapter.
Przekazujemy adapter do widoku listy.
¨
Fragment WorkoutDetailFragment
¨
Fragment WorkoutListFragment
¨
Koordynacja fragmentów
378
Rozdział 9.
Wyświetlenie fragmentu WorkoutListFragment
Wyświetlenie fragmentu WorkoutListFragment
w układzie aktywności MainActivity
Zamierzamy teraz dodać nasz nowy fragment
WorkoutListFragment
do układu aktywności
MainActivity.
Obecnie układ zawiera
przycisk, którego używaliśmy, by przechodzić z aktywności
MainActivity
do
DetailActivity
.
¨
Fragment WorkoutDetailFragment
¨
Fragment WorkoutListFragment
¨
Koordynacja fragmentów
Chcemy usunąć przycisk i zamiast niego wyświetlić
w aktywności fragment
WorkoutListFragment
.
Oto jak będzie wyglądać nowa wersja układu:
Układ aktywności
MainActivity
zawiera obecnie
tylko jeden przycisk.
Zmienimy układ, zastępując
przycisk fragmentem
WorkoutListFragment.
Jak będzie wyglądać kod układu? Aby to sprawdzić, spróbuj wykonać
ćwiczenie zamieszczone na następnej stronie.
Fragmenty
379
jesteś tutaj
LinearLayout
android:name
android:fragment
WorkoutListFragment
com.hfad.trenazer
fragment
Fragment
<?xml version=”1.0” encoding=”utf-8”?>
<....................... xmlns:android=”http://schemas.android.com/apk/res/android”
...................... = ”.............................................................”
android:layout_width=”match_parent”
android:layout_height=”match_parent”/>
Magnesiki z układami
Ktoś ułożył z magnesików na drzwiach naszej lodówki nową wersję kodu z pliku
activity_main.xml
. Niestety
kiedy zbyt energicznie zamykaliśmy lodówkę, niektóre z magnesików odpadły. Czy potrafisz uzupełnić kod
układu? (Nie będziesz musiał w tym celu używać wszystkich dostępnych magnesików).
Układ musi wyświetlić fragment WorkoutListFragment.
380
Rozdział 9.
Rozwiązanie
<?xml version=”1.0” encoding=”utf-8”?>
<....................... xmlns:android=”http://schemas.android.com/apk/res/android”
...................... = ”.............................................................”
android:layout_width=”match_parent”
android:layout_height=”match_parent”/>
LinearLayout
android:name
android:fragment
WorkoutListFragment
com.hfad.trenazer
Te magnesiki nie były potrzebne.
fragment
Fragment
Do zadeklarowania fragmentu
używamy elementu <fragment>.
Musimy podać pełną nazwę
fragmentu.
Magnesiki z układami. Rozwiązanie
Ktoś ułożył z magnesików na drzwiach naszej lodówki nową wersję kodu z pliku
activity_main.xml
. Niestety
kiedy zbyt energicznie zamykaliśmy lodówkę, niektóre z magnesików odpadły. Czy potrafisz uzupełnić kod
układu? (Nie będziesz musiał celu używać wszystkich dostępnych magnesików).
Układ musi wyświetlić fragment WorkoutListFragment.
Get Android Programowanie aplikacji. Rusz głową! Wydanie II now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.