Listener w fragmencie

0

Witam, jak zrobić listenera w fragmencie w jakiej metodzie go zadeklarować na razie zrobiłem go w metodzie onCreateView i nie działa. Jestem laikiem jeżeli chodzi o tworzenie layoutu w javie. Tak to jakoś wstawiłemm, android studio nie wskazuje mi żadnego błędu więc nie wiem o co chodzi.

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment

            View rootView = inflater.inflate(R.layout.fragment_one, container, false);         
            CheckBox checkBox1 = (CheckBox) rootView.findViewById(R.id.checkbox1);           
            checkBox1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

                                                   @Override
                                                   public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
                                                       Log.i("wiadomosc","ta wiadomosc");
                                                   }
                                               }
            );

        return inflater.inflate(R.layout.fragment_one, container, false);
    }

Ostatecznie to ma to być coś takiego że po kliknięciu w checkboxa dwa edittexty zmieniają właściwość na disabled i nie można tam wpisać żadnej wartości. Wszystko jest w jednym fragmencie.

0

Ok wygląda na to że problem był w tym że w złym miejscu to zadeklarowałem. Może być w metodzie onViewCreated bo teraz działają mi logi.

0

onCreateView też mógłbyś użyć. Miałeś błąd, ponieważ po utworzeniu widoku i ustawieniu listenera, zwracałeś nowy widok zamiast tego wcześniejszego. Powinno to wyglądać tak.

public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle inState) {
  View view = inflater.inflate(R.layout.moj_layout, parent, false);
  CheckBox checkBox = view.findViewById(R.id.checkBox);
  checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    public void onCheckedChanged(CompoundButton button, boolean isChecked) {
      // Zrób coś.
    }
  });
  return view; // Tutaj miałeś błąd.
}
0

ok dzięki, dopiero dzisiaj to odczytałem bo miałem pełno roboty.

1 użytkowników online, w tym zalogowanych: 0, gości: 1