2013-02-18 7 views
7

przykro mi, to pytanie jest dla tych z was pracuje na Eclipse z dostępem do kodów przykładowych ApiDemo.
Konkretnie, staram się opierać działalność fragment na próbce o nazwie FragmentLayoutStrange FragmentTransaction w klasie FragmentLayout z próbki ApiDemos

Poniższy kod jest problematyczne dla mnie (można znaleźć pełny kod w ApiDemo FragmentLayout.java, ShowDetails() metoda):

   // Execute a transaction, replacing any existing fragment 
       // with this one inside the frame. 
       FragmentTransaction ft = getFragmentManager().beginTransaction(); 
       if (index == 0) { 
        ft.replace(R.id.details, details); 
       } else { 
        ft.replace(R.id.a_item, details); 
       } 
       ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
       ft.commit(); 

dwa pytania mam:

  1. Jaka jest różnica między index == 0 a index != 0?

  2. Zasób R.id_a_item (tylko występowanie we wszystkich ApiDemos, po przeszukaniu go) należy do jakiegoś rodzaju zasobu skrótu menu, nie jest w ogóle jasne, dlaczego jest używany tutaj.

Poradnik androiddevelopers nie wyjaśnia tego fragmentu kodu.

Odpowiedz

5

Jaka jest różnica między indeksem == 0 a indeksem! = 0?

Nie powinno być żadnych różnic między pozycją 0, a innymi pozycjami listy, ponieważ kod jest ustawiony tak, aby po prostu zastąpić poprzedni fragment szczegółów nowym.

Zasób R.id_a_item (tylko występowaniem we wszystkich ApiDemos po szukasz IT) należy do jakiegoś zasobu podręcznego menu, nie jasne dlaczego w ogóle jest tutaj.

Najbardziej prawdopodobne, że jest to błąd w próbce przy użyciu tego identyfikatora rzuci wyjątek, ponieważ nie istnieje w aktualnym układzie (mam uruchomić projekt znajdujący się na emulatorze 4,2 API Demos i rzuca, że Brak widoku wyjątku ... itd. dla tego id). Prawdopodobnie jest to poślizg w ostatniej wersji próbek jako fragment kodu, którego kwestionowanie nie istnieje w innych wersjach.

+2

Tak, właśnie tak myślałem. Ale nigdy nie wiesz, z Androidem, zgodnie z prawem Murphy'ego, gdybym nie zapytał o to, okazałoby się, że rzeczy 'if (index == 0)' zawieszają aplikację lub usuwają wewnętrzną pamięć RAM :-) – ilomambo