2016-04-04 15 views
6

Android Studio obsługuje makra - które lubią nazywać szablonami na żywo - co jest miłe, ale nikt nie zadaje sobie trudu, aby wyjaśnić, jak z nich korzystać, a najmniej ze wszystkich Android Studio. Oczywistym jest, że szablon live "fbc" został zaprojektowany w celu ułatwienia korzystania z findViewById, ale nie wiem, jak go użyć. Jak dokładnie użyć tego szablonu do wytworzenia kawałek boilerplate tak, na przykład:Studio Android: jak korzystać z szablonu na żywo fbc

EditText e = (EditText) findViewById(R.id.m); 

Odpowiedz

9

Po wielu fiddling, ja w końcu zrozumieć. Na pustej linii wpisujesz "fbc", a następnie zakładkę. To daje ci to:

(|) findViewById(R.id.); 

z czerwonym kursorem umieszczonym na "|". Wprowadzasz typ obiektu, ewentualnie używając tabulatora lub enter, aby autouzupełnić. Aby przejść do następnego pola, może być konieczne naciśnięcie klawisza lub ponowne wprowadzenie go:

(EditText) findViewById(R.id.|); 

Powtórz dla identyfikatora. To ci to daje:

(EditText) findViewById(R.id.m)|; 

Cała linia zostanie podkreślona, ​​ponieważ jest wyrażeniem, a nie stwierdzeniem. Za każdym razem, gdy masz własny wiersz z wyrażeniem, możesz nacisnąć Alt-Enter, a następnie Enter ponownie, aby wybrać "Wprowadź zmienną lokalną" i przypisać wyrażenie do nowej zmiennej, a tym samym wydać oświadczenie:

EditText |viewById| = (EditText) findViewById(R.id.m); 

Generuje automatycznie nową nazwę zmiennej. Jeśli wszystko w porządku, po prostu naciśnij enter, aby sfinalizować. Jeśli chcesz mieć inną nazwę zmiennej, zacznij wpisywać nazwę nowej zmiennej przed naciśnięciem klawisza Enter. Ich nazwa zmiennej zostanie automatycznie zastąpiony, dając wynik końcowy:

EditText e = (EditText) findViewById(R.id.m);| 

I że „s jak użyć«FBC»Szablon na żywo! IMO, powinno to być częścią każdego samouczka Androida.

Edit: I później zrealizowane szablon FBC została źle wykonana i to o wiele łatwiej po prostu go naprawić, przechodząc do ustawień i zastąpienie jej tekst szablonu z tym:

$cast$ $var$ = ($cast$) findViewById(R.id.$resId$); 

To czyni całą sprawę wszystko co pewnego razu. Wygląda trochę dziwnie, dopóki wartości nie zostaną wypełnione.