Dziś zajmiemy się przesyłaniem danych przekazanych przez użytkownika do drugiego widoku, w którym zostaną wyświetlone.

Na dobry początek tworzymy nie jeden, a dwa widoki:

W pierwszym z nich (activity_main.xml) utworzymy nasz formularz:

– Dwa inputy typu tekstowego (na nasz login – PlainText oraz hasło – Password)
– Checkbox „zgoda” – do zaakceptowania naszej zgody
– Dwa RadioButtony umieszczone w Radio Group – do wyboru płci mężczyzna lub kobieta (RadioGroup umożliwia wybranie tylko jednej z opcji)
– Spinner (lista rozwijana – do wyboru kraju)
– Przycisk do przesłania formularza

Przykładowe ułożenie w drzewku projektu:

Uwaga zajmiemy się teraz podpięciem listy państw do wyboru do naszego spinnera!

Odnajdujemy w naszym projekcie plik strings.xml

Tworzymy tablicę stringów z nazwami państw, dla przykładu:

Następnie w naszym activity_main.xml podpinamy tablicę tą do spinnera:

Powinno śmigać 🙂
Oto przykładowe style dla activity_main: activity_main.xml

Przechodzimy do drugiego widoku:

Tworzymy tutaj tylko kilka TextView – będziemy tu wyświetlać wartości z naszego formularza
Dla przykładu:

Po stronie kodu: correct_password.xml

Pora zabrać się za najważniejsze – działanie naszej aplikacji, w tym celu udajmy się do MainActivity.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package com.example.logowankozdanymi;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {


    /*
    Tworzymy zmienne z poprawnym hasłem i loginem
    będą one sprawdzane przy logowaniu.
     */

    String correctUsername = "User";
    String correctPassword = "haslo";
   
    /*
    Tworzymy sobie zmienne do obsługi wartości wprowadzonych
    w inputach naszej aplikacji, które potem wyświetlimy
    w drugim widoku
     */

    String countrySelected;
    String userInp, passwordInp;
    Boolean zgodaSelected;
    Boolean womanSelected;
    Boolean manSelected;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Pobieramy obiekt naszego przycisku
        Button btn = findViewById(R.id.confirm);
       
        // Przypisujemy do przycisku nasłuch na kliknięcie
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
               

                // Pobieramy wartości wprowadzone przez użytkowników do pól hasło i login
                // Konwertujemy wartości pobrane do stringa
                EditText userObj = (EditText) findViewById(R.id.userInput);
                EditText passwordObj = (EditText) findViewById(R.id.passwordInput);
                userInp = userObj.getText().toString();
                passwordInp = passwordObj.getText().toString();
               
                if (!(userInp.isEmpty()) && !(passwordInp.isEmpty())){
                    // Pobieramy wartość z naszej listy rozwijanej i zapisujemy do zmiennej
                    Spinner s = (Spinner) findViewById(R.id.spinner);
                    countrySelected = s.getSelectedItem().toString();
                    // Sprawdzamy czy zgoda została zaakceptowana
                    CheckBox zgoda = (CheckBox) findViewById(R.id.zgoda);
                    zgodaSelected = zgoda.isChecked();
                    // Sprawdzamy wybraną płeć
                    RadioButton woman = (RadioButton) findViewById(R.id.woman);
                    womanSelected = woman.isChecked();
                    RadioButton man = (RadioButton) findViewById(R.id.man);
                    manSelected = man.isChecked();
                   
                    if (userInp.equals(correctUsername)){
                        if(passwordInp.equals(correctPassword)){
                            // Zmieniamy widok na correct_password
                            // po sprawdzeniu poprawności hasła i loginu
                            setContentView(R.layout.correct_password);
                            // Pobieramy nasze TextView z drugiego widoku
                            TextView t1 = (TextView) findViewById(R.id.userOutput);
                            TextView t2 = (TextView) findViewById(R.id.acceptOutput);
                            TextView t3 = (TextView) findViewById(R.id.sexOutput);
                            TextView t4 = (TextView) findViewById(R.id.countryOutput);

                            // Przypisujemy do naszych TextView's wartości z formularza
                            t1.setText("User: " + userInp);
                            if(zgodaSelected) {
                                t2.setText("Zgoda: TAK");
                            } else{
                                t2.setText("Zgoda: NIE");
                            }

                            if(womanSelected) {
                                t3.setText("Płeć: Kobieta");
                            } else if (manSelected) {
                                t3.setText("Płeć: Mężczyzna");
                            } else {
                                t3.setText("Płeć: NIE WYBRANO");
                            }

                            t4.setText("Kraj: " + countrySelected);


                        }
                        else {
                            Toast.makeText(MainActivity.this, "Niepoprawne hasło", Toast.LENGTH_SHORT).show();
                        }
                    }
                    else {
                        Toast.makeText(MainActivity.this, "Niepoprawny login", Toast.LENGTH_SHORT).show();
                    }
                }
                else {
                    Toast.makeText(MainActivity.this, "Uzupełnij wszystkie pola!", Toast.LENGTH_SHORT).show();
                }

            }
        });

    }
}

Przykładowy wygląd wypisanych danych:

Przykładowy arkusz INF 04
https://www.testy.egzaminzawodowy.info/arkusz-21888-kwalifikacja-inf4-czerwiec-2022-zadanie-2
inne arkusze
https://www.testy.egzaminzawodowy.info/kwalifikacja-inf4-arkusze