Skocz do zawartości
Coders Lab

Zdarzenia na komponentach i ich obsługa

    Rekomendowane odpowiedzi

    Tworząc nowy przycisk, zapewne chcemy, żeby po jego kliknięciu wykonała się jakaś akcja. Zatem taki przycisk musi obsługiwać zdarzenie, którym w tym przypadku jest kliknięcie na niego. Może to być wyświetlenie komunikatu, otworzenie nowego activity, zapis danych itd. Jednak domyślnie przycisk jest nieczuły na kliknięcia i trzeba jasno mu sprecyzować dwie rzeczy. Po pierwsze - ma "nasłuchiwać" czy wystąpiło określone zdarzenie. Po drugie ma wiedzieć co zrobić gdy takie zdarzenie wystąpi. Do realizacji tych zadań używany jest OnClickListener:

    //mamy już przycisk zdefiniowany wcześniej
    
    // Java
    
    button.setOnClickListener( new OnClickListener() { // 1
        @Override
        public void onClick(View arg0) {
            Toast.makeText(getApplicationContext(), "przycisk został kliknięty", Toast.LENGTH_SHORT).show(); // 2
        }
    })
      
    // Kotlin
      button.setOnClickListener { // 1
        Toast.makeText(this, "przycisk został kliknięty", Toast.LENGTH_SHORT).show() // 2
    } 

    1. Ustawiamy zdarzenie na które przycisk ma reagować.

    2. Dodajemy akcję jaka ma się wykonać.

     

    Istnieje wiele typów zdarzeń, które mogą być definiowane na dowolnym typie komponentu. Na przykład OnClickListener możemy równie dobrze ustawić na TextView. Możemy definiować co stanie się gdy użytkownik dłużej przytrzyma palec na komponencie (OnLongClickListener ), spróbuje go przeciągnąć (OnDragListener ), czy nawet wykonanie akcji może być spowodowane przez samo wprowadzanie tekstu - w przypadku EditText (TextChanged).

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Dzień dobry,

    Podepnę się pod ten temat, ponieważ występuje problem gdy chcę założyć nowy. Mam radio z androidem z dwoma pokrętłami, jedno sprawuje funkcję zmiany poziomu głośności, drugie zmiany częstotliwości radia. Jakim sposobem mógłbym zmienić funkcję drugiego pokrętła na zmianę poziomu podbicia basu w equalizerze (ma taki parametr zmieniany buttonami) ? Czy należałoby dopisać taką funkcję do aplikacji equalizera? Jak odwołać się do adresu pokrętła? Powinna być taka możliwość, chińskie małe rączki jakoś to ogarnęły.

    Dziękuję i pozdrawiam.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    mmaciejow

    @marcinlsc każdy przycisk powinien mieć swój id (android:id....) w xml layoutu. Potem w kodzie aplikacji przypisujesz dany id do jakiejś funkcji, która ma coś robić. W Twoim przypadku to zmiana basu.

    https://developer.android.com/reference/android/media/audiofx/Equalizer

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x