Poprzednio pokazałem jak osiągnąłem aktywności obsługujące testy, a dzisiaj dzięki kilku zmianom w kodzie udało się zrobić tak, aby użytkownik mógł sam wyznaczyć sobie czas, ilość odpowiedzi i maksymalną ilość pomyłek. Było to naprawdę proste, a spójrzmy jak fajnie działa:
Intent intent = new Intent(NumbersCustomActivity.this, ChoiceCheckActivity.class);
intent.putExtra(Const.CUSTOM, true);
intent.putExtra(Const.CUSTOM_TIME,
Integer.parseInt(timeAmount.getText().toString()));
intent.putExtra(Const.CUSTOM_GOOD_ANSWER,
Integer.parseInt(goodAnswerAmount.getText().toString()));
intent.putExtra(Const.CUSTOM_BAD_ANSWER,
Integer.parseInt(badAnswerAmount.getText().toString()));
startActivity(intent);
A także przekazujemy dane które zostały wpisane w pola. Od razu parsujemy na inty, żeby nie było problemu 😉 Formatki EditText po stronie xml są tak sformatowane, żeby przyjmować tylko cyfry 😉
Edycji w istniejącym kodzie też nie było zbyt wiele 😉
3) zmieniła się klasa CounterOperation, metoda getData()
private void getData(Intent intent) {
boolean test = intent.getBooleanExtra(Const.TEST, false);
if(test) {
int c = intent.getIntExtra(Const.CLASS, 0);
if (c == 1) {
time = Const.I_CLASS_TIME;
goodAnswer = Const.I_CLASS_GOOD_ANSWER;
badAnswer = Const.I_CLASS_BAD_ANSWER;
} else if (c == 2) {
time = Const.II_CLASS_TIME;
goodAnswer = Const.II_CLASS_GOOD_ANSWER;
badAnswer = Const.II_CLASS_BAD_ANSWER;
} else {
time = Const.III_CLASS_TIME;
goodAnswer = Const.III_CLASS_GOOD_ANSWER;
badAnswer = Const.III_CLASS_BAD_ANSWER;
}
}
else {
time = intent.getIntExtra(Const.CUSTOM_TIME, 0);
goodAnswer = intent.getIntExtra(Const.CUSTOM_GOOD_ANSWER, 0);
badAnswer = intent.getIntExtra(Const.CUSTOM_BAD_ANSWER, 0);
}
}
Dzięki temu obsługuje dane przesłane przez użytkownika (obiekt Intent może być naprawdę bardzo przydatny 😉
4) doszła zmienna boolean o nazwie custom, która ma zastosowanie w tych samych przypadkach co zmienna test, czyli zasady są takie same, ale wartości może podać użytkownik.
W ten oto sposób w kilka chwil doszła kolejna logika do zadań. Także możliwości mamy już całkiem sporo i praktycznie zostało to wszystko osiągnięte dzięki kilku liniom kodu, dzięki wcześniejszemu przygotowaniu sensownych nadklas.
Ten post ma numer 18 w konkursie DSP, cieszę się, że jest tyle osób które przegląda mojego bloga (dzięki! :). Pozostały jeszcze dwa DSP i zastanawiam się, czy pisanie dalej, tzn po zakończeniu konkursu na temat tego projektu z tak dużą intensywnością ma sens? Bo mam w głowie kilka pomysłów na to co może się tutaj dziać, ale o tym za kilka wpisów 😉 Będzie fajnie 🙂
Pozdrawiam!
