Kontrolki Button – dodawanie i obsługa przycisków w aplikacji Android

1. Wstęp teoretyczny

Przycisk (Button) to jedna z najczęściej używanych kontrolek w aplikacjach mobilnych. Umożliwia użytkownikowi wykonywanie akcji — np. przejście do innego ekranu, wysłanie danych z formularza, zmianę koloru, wyświetlenie komunikatu itp.

W Android Studio przycisk należy do klasy android.widget.Button. Aby działał, musi zostać:

  1. zdefiniowany w pliku XML (interfejs użytkownika),
  2. powiązany z kodem Java, który reaguje na kliknięcie.

2. Dodawanie przycisku w XML

Najprostszy przycisk można dodać w pliku activity_main.xml:

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Kliknij mnie!" />

Atrybuty:

  • android:id – unikalny identyfikator przycisku (używany w Javie),
  • android:text – tekst widoczny na przycisku,
  • android:layout_width i android:layout_height – rozmiar przycisku (np. wrap_content lub match_parent).

3. Obsługa przycisku w Javie

Każdy przycisk może reagować na zdarzenie kliknięcia (OnClickListener):

Button button = findViewById(R.id.button1);

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(MainActivity.this, "Kliknięto przycisk!", Toast.LENGTH_SHORT).show();
    }
});

Metoda Toast.makeText(...) wyświetla krótką wiadomość na ekranie.


4. Używanie metody onClick bezpośrednio w XML

Zamiast definiować obsługę w kodzie Java, można użyć atrybutu android:onClick:

W XML:

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Pokaż komunikat"
    android:onClick="pokazKomunikat" />

W Javie:

public void pokazKomunikat(View view) {
    Toast.makeText(this, "Przycisk działa!", Toast.LENGTH_SHORT).show();
}

5. Stylizacja przycisku

Przyciski można stylizować podobnie jak inne kontrolki:

<Button
    android:id="@+id/button3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Zmieniony styl"
    android:textColor="#FFFFFF"
    android:textSize="18sp"
    android:background="#2196F3"
    android:padding="12dp"
    android:layout_marginTop="10dp"
    android:layout_gravity="center" />

Najczęściej używane atrybuty:

  • android:textColor – kolor tekstu,
  • android:textSize – rozmiar czcionki,
  • android:background – kolor tła przycisku,
  • android:padding – odstęp wewnętrzny,
  • android:layout_margin – odstęp zewnętrzny,
  • android:layout_gravity – pozycjonowanie wewnątrz layoutu.

6. Zmiana wyglądu przycisku po kliknięciu

Można zmienić wygląd przycisku dynamicznie w Javie:

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        button.setText("Kliknięto!");
        button.setBackgroundColor(Color.GREEN);
        button.setTextColor(Color.BLACK);
    }
});

7. Przycisk z obrazkiem

W XML możesz dodać ikonę obok tekstu:

<Button
    android:id="@+id/buttonIcon"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Start"
    android:drawableLeft="@drawable/ic_start"
    android:padding="10dp" />

Atrybuty:

  • android:drawableLeft, android:drawableRight, android:drawableTop, android:drawableBottom – dodają obrazek obok tekstu.

8. Rodzaje przycisków

W Androidzie istnieje kilka typów przycisków:

  • Button – standardowy przycisk,
  • ImageButton – przycisk z samym obrazkiem,
  • ToggleButton – przycisk przełącznik (ON/OFF),
  • Switch – nowoczesny przełącznik,
  • RadioButton – przycisk wyboru jednej opcji,
  • CheckBox – przycisk wyboru wielu opcji.

9. Przykład – zmiana tła ekranu po kliknięciu

Button btn = findViewById(R.id.buttonChange);
LinearLayout layout = findViewById(R.id.mainLayout);

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        layout.setBackgroundColor(Color.CYAN);
    }
});

10. Przykład – zmiana tła ekranu na losowy kolor


Random random = new Random(); // stworzenie obiektu random

int r = random.nextInt(256);
int g = random.nextInt(256);
int b = random.nextInt(256);

// Utworzenie koloru i ustawienie tła
int randomColor = Color.rgb(r, g, b);
layout.setBackgroundColor(randomColor);

Zadania dla uczniów

  1. Podstawowy przycisk: Utwórz przycisk, który po kliknięciu wyświetla Twoje imienie.

  2. Dwa przyciski – różne akcje: Dodaj dwa przyciski – jeden zmienia kolor tła, drugi kolor tekstu w TextView.

  3. Zmiana tekstu przycisku: Utwórz przycisk, który po kliknięciu zmienia swój tekst na „Kliknięto!”.

  4. ImageButton: Dodaj ImageButton z obrazkiem w folderze drawable, który po kliknięciu wyświetli komunikat „Obrazek kliknięty!”.

  5. Stylizacja: Utwórz przycisk z własnym tłem, kolorem tekstu, większą czcionką i zaokrąglonymi rogami (podpowiedź: użyj shape w drawable).

  6. Przycisk losowego koloru: Napisz kod, który po każdym kliknięciu przycisku zmienia tło aplikacji na losowy kolor.