• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Android - CommonGestures, implementacja we Fragmencie.

Object Storage Arubacloud
0 głosów
55 wizyt
pytanie zadane 7 listopada 2020 w Java przez amtrax Dyskutant (9,630 p.)

Cześć, 

próbuje zaimplementować wykrywanie tzw. Common Gestures w mojej aplikacji, miejsce wykrywania to Fragment z ViewModelem.
Zaimplementowałem wszystkie niezbędne metody, onDown, onShowPress etc. GestureDetector  zostal zainicjalizowany w onCreateView. 

Kiedy użytkownik wykona jeden z "powszechnych" gestów, aplikacja powinna wywołać metodę umieszczoną w ViewModelu. 

Problem jest z nadpisaniem metody onTouchEvent. Android Studio wysyła błąd, w którym mówi, że moja implementacja nie nadpisuje żadnej metody.

public class SecondFragment extends Fragment  implements GestureDetector.OnGestureListener{

private SecondViewModel mViewModel;
private GestureDetectorCompat gDetector;
private final float rate = 3.14f;



public static SecondFragment newInstance() {
    return new SecondFragment();
}

@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
                         @Nullable Bundle savedInstanceState) {
    gDetector = new GestureDetectorCompat(getActivity(), this);
    return inflater.inflate(R.layout.second_fragment, container, false);
}


@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    mViewModel = new ViewModelProvider(this).get(SecondViewModel.class);




    TextView euroView = getView().findViewById(R.id.inEuro);
    TextView valueView = getView().findViewById(R.id.textView);
    Switch mSwitch = getView().findViewById(R.id.mySwitch);


    mSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
            if (isChecked) {
                Navigation.findNavController(mSwitch).navigate(R.id.moveToMain);
            }
        }
    });

    final Observer<Float> valueObserver = new Observer<Float>() {
        @Override
        public void onChanged(@Nullable final Float myValue) {
            valueView.setText(myValue.toString());
        }
    };

    final Observer<Float> euroValueObserver = new Observer<Float>() {
        @Override
        public void onChanged(Float myValue) {
            euroView.setText(myValue.toString());
        }
    };

    mViewModel.getValue().observe(getViewLifecycleOwner(), valueObserver);
    mViewModel.getEuroV().observe(getViewLifecycleOwner(), euroValueObserver);
}


@Override
public void onStart(){
    super.onStart();
        mViewModel.setValue(SecondFragmentArgs.fromBundle(getArguments()).getVal());
}

@Override
public boolean onDown(MotionEvent motionEvent) {

   mViewModel.convertion();

    return false;
}

@Override
public void onShowPress(MotionEvent motionEvent) {

}

@Override
public boolean onSingleTapUp(MotionEvent motionEvent) {
    mViewModel.convertion();
    return false;
}

@Override
public boolean onScroll(MotionEvent motionEvent, MotionEvent motionEvent1, float v, float v1) {
    mViewModel.convertion();
    return false;
}

@Override
public void onLongPress(MotionEvent motionEvent) {

}

@Override
public boolean onFling(MotionEvent motionEvent, MotionEvent motionEvent1, float v, float v1) {
    mViewModel.convertion();
    return false;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
    this.gDetector.onTouchEvent(event);
    return getActivity().onTouchEvent(event);
}

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 130 wizyt
pytanie zadane 6 grudnia 2017 w Android, Swift, Symbian przez Kubs Mądrala (5,190 p.)
0 głosów
2 odpowiedzi 285 wizyt
pytanie zadane 4 października 2017 w Android, Swift, Symbian przez Kubs Mądrala (5,190 p.)
0 głosów
1 odpowiedź 93 wizyt
pytanie zadane 4 lutego 2023 w Java przez piotr_domanski Bywalec (2,080 p.)

92,568 zapytań

141,420 odpowiedzi

319,620 komentarzy

61,954 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...