Wspominałem w którymś wcześniejszym wpisie, że te ekrany, na których aktualnie mamy 5 prób zostaną przerobione, na takie bardziej arcadowe. O tym chciałem też dzisiaj napisać, udało mi się całkiem bezboleśnie przeprowadzić taką operację. Oto jak to wyglądało.
Po pierwsze przebudowałem trochę ekran główny dodając przycisk „Practice” i pod tym przyciskiem ukryte są kolejne aktywności:
Po drugie potrzebowałem w jakiś sposób odróżnić kiedy aktywność ma zachowywać się normalnie, a kiedy jest to ekran praktyk. Osiągnąłem to korzystając z możliwości przekazania danych w intencji. Przekazanie wygląda tak:
intent.putExtra(Const.PRACTICE, true);
a odczyt:
Intent intent = getIntent();
practice = intent.getBooleanExtra(Const.PRACTICE, false);
Czyli przekazujemy wartość boolean, przy odczycie z kolei drugi parametr oznacza wartość domyślną, czyli co tam przypisać jeśli nic nie znajdziemy.
Po trzecie, potrzebny był widok w którym mógłbym zapisywać zdobyte punkty i popełnione pomyłki, wykorzystałem istniejące już obiekty i oto jest:
Ikona zegarka w bieżącej implementacji jest ukryta, ale przyda się w przyszłości 😉 Reszta mam nadzieję jest zrozumiała i czytelna.
Po czwarte i ostatnie, implementacja. Tutaj trzeba było dodać warunek, jak aplikacja ma się zachowywać kiedy przyszła z ekranu praktyk, czyli powyżej odczytany intent Extra ma wartość true. Wklejam poniżej przykładowy kod jak to wygląda:
@Override
@OnClick(R.id.successView)
public void onClickSuccessView() {
if (isPractice()) {
stackBricksElementsOperation.hideStack(bricksArray);
createReadyView();
counterOperation.count(true);
unFillScreen(true, true);
screenFiled = false;
} else {
starsOperation.nextStar(true);
gameCounter++;
if (gameCounter == 5)
nextActivity(true, ChoiceCheckActivity.this);
else {
stackBricksElementsOperation.hideStack(bricksArray);
createReadyView();
unFillScreen(true, true);
screenFiled = false;
}
}
}
Te warunki pewnie można napisać lepiej, także pomyślę nad nimi i je poprawię, jeśli myślenie poskutkuje 😉 A na sam koniec oto jak to wygląda na jednym przykładzie:
Jak widać poszło całkiem sprawnie i bezboleśnie. Następnym krokiem będzie wykorzystanie pokazanego już tutaj zegarka, ale o tym innym razem.
Pozdrawiam!

