476
Rozdział 11.
Kod fragmentu WorkoutDetailFragment
package com.hfad.trenazer;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class WorkoutDetailFragment extends Fragment {
private long workoutId;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
if (savedInstanceState == null) {
StopwatchFragment stopwatch = new StopwatchFragment();
FragmentTransaction ft = getChildFragmentManager().beginTransaction();
ft.add(R.id.stopwatch_container, stopwatch);
ft.addToBackStack(null);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
} else {
workoutId = savedInstanceState.getLong(”workoutId”);
}
}
Kompletny kod pliku WorkoutDetailFragment.java
Poniżej przedstawiliśmy pełny kod pliku WorkoutDetailFragment.java.
Zaktualizuj swoją wersję tego pliku, by była identyczna z naszą.
app/src/main
WorkoutDetail
Fragment.java
Trenazer
java
com.hfad.trenazer
Musisz zaimportować klasę
FragmentTransaction
z biblioteki wsparcia.
Chcemy dodawać
fragment
wyłącznie wtedy,
gdy aktywność
jest tworzona
po raz pierwszy,
a nie odtwarzana
po usunięciu.
To wywołanie
rozpoczyna
transakcję
fragmentu.
Dodajemy stoper, a następnie dodajemy
całą transakcję do stosu cofnięć.
Ustawiamy efekt
przejścia, by
fragment pojawiał
się i znikał
stopniowo.
To wywołanie zatwierdza transakcję.
Usuń ten wiersz kodu.
Dalsza część kodu
znajduje się na
następnej stronie.
¨
Konwersja stopera
¨
Testy stopera
¨
Dodanie do fragmentu
Fragmenty dynamiczne
477
jesteś tutaj
app/src/main
WorkoutDetail
Fragment.java
Trenazer
java
com.hfad.trenazer
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_workout_detail, container, false);
}
@Override
public void onStart() {
super.onStart();
View view = getView();
if (view != null) {
TextView title = (TextView) view.findViewById(R.id.textTitle);
Workout workout = Workout.workouts[(int) workoutId];
title.setText(workout.getName());
TextView description = (TextView) view.findViewById(R.id.textDescription);
description.setText(workout.getDescription());
}
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putLong(”workoutId”, workoutId);
}
public void setWorkout(long id) {
this.workoutId = id;
}
}
To już wszystkie zmiany, które musieliśmy wprowadzić
w aplikacji. Weźmy ją zatem na krótką jazdę próbną
i sprawdźmy, czy działa prawidłowo.
Nie zmieniliśmy żadnej
metody na tej stronie.
Kompletny kod (ciąg dalszy)
¨
Konwersja stopera
¨
Testy stopera
¨
Dodanie do fragmentu
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.