Jestem nowy w programowaniu na Androida. Czy można używać tego samego identyfikatora dla obrazów i TextViews
różnych Layout
plików XML?
Kiedy zaćmienie automatycznie je wyświetla, wyświetla wszystkie zmienne układu z projektu, więc czy będzie kolidować? Do tej pory nie zauważyłem żadnych problemów z używaniem tego samego identyfikatora w różnych układach, ale martwię się na dłuższą metę.
android
android-layout
happyhardik
źródło
źródło
Odpowiedzi:
Zaleca się używanie różnych identyfikatorów dla różnych układów. Na dłuższą metę, gdy będziesz mieć wiele układów, a tym samym wiele identyfikatorów, ich rozróżnienie będzie bardzo trudne.
Ja zazwyczaj nazwać moje identyfikatory tak:
layoutName_elementId
.U mnie działa łatwe znajdowanie identyfikatora, którego szukam, zwłaszcza podczas korzystania z autouzupełniania (wiem, na jakim układzie pracuję, ale tak naprawdę nie znam identyfikatora; w tym przypadku przy mojej strategii nazewnictwa wpisz tylko nazwę układu, a to spowoduje wyświetlenie wszystkich identyfikatorów tego układu).
Więcej informacji na temat układów i identyfikatorów można znaleźć tutaj .
Miłego kodowania,
źródło
ok_button
w każdej swojej działalności? Dzięki temu autouzupełnianie jest jeszcze bardziej przejrzyste, jeśli wiesz, że szukasz czatu.Krótka odpowiedź: tak, możesz.
Długa odpowiedź: Możesz to zrobić, ponieważ za każdym razem, gdy używasz findViewById (), aby uzyskać odwołanie do części układu, metoda szuka tylko tego widoku w aktualnie zawyżonym układzie. Więc nawet jeśli masz inny widok z tym samym identyfikatorem w innym układzie, Android nie będzie go tam szukał.
źródło
Zgodnie z przewodnikami po API dla programistów:
Krótka odpowiedź brzmi: nie jest to obowiązkowe, ale dobrą praktyką jest unikanie możliwych konfliktów.
źródło
Niezalecane, ponieważ jeśli w przyszłości będziesz musiał dokonać refaktoryzacji
view
id
, Android Studio zrefaktoruje to we wszystkichXML
plikach i klasach i będziesz miał kłopoty.Ale są też sytuacje, w których musisz użyć tego samego,
id
na przykład jeśli masz jakieś streszczenie i ponownie używasz wielu układów.Jeśli masz wiele
views
z tym samymid's
w swoim projekcie i potrzebujesz refaktoryzacji, zrób to ręcznie, nie używaj funkcji budowania w IDE, zmieńid
widok docelowy wXML
układzie, a następnie napraw czerwony błąd w układzie.źródło