Как узнать, из какого экземпляра Fragment вызывается setOnCheckedChangeListener? - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть основное задание, в котором я должен отображать 3 из 12 вопросов на каждом экране (которые сохраняются в базе данных sql) и с переключателями Да и Нет. Итак, я сделал класс фрагмента и трижды назвал его в своей основной деятельности. На моей следующей кнопке я создаю и планирую свой основной класс. следовательно, с одним фрагментом я заполняю 12 вопросов на 4 экранах.

Теперь, когда я нажимаю переключатель, я хочу увидеть, для какого вопроса нажимается переключатель, а затем вычислить оценку (каждый вопрос имеет отдельную оценку Это также отображается в моей базе данных sqlite для каждого вопроса) Как мне это сделать?

1 Ответ

0 голосов
/ 21 апреля 2020

Метод 1: Создание 4 фрагментов.

public class Fragment1 extends Fragment {
    private RadioButton radioButton;
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        // radioButton.setOnCheckedChangeListener...
    }
}

public class Fragment2 extends Fragment {
    private RadioButton radioButton;
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        // radioButton.setOnCheckedChangeListener...
    }
}

public class Fragment3 extends Fragment {
    private RadioButton radioButton;
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        // radioButton.setOnCheckedChangeListener...
    }
}

public class Fragment4 extends Fragment {
    private RadioButton radioButton;
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        // radioButton.setOnCheckedChangeListener...
    }
}

Метод 2: Создание 1 фрагмента с передачей 4 различных целочисленных расслоений.

Bundle bundle1 = new Bundle();
bundle1.putInt("questions1" , 1);

Bundle bundle2 = new Bundle();
bundle2.putInt("questions2" , 2);

Bundle bundle3 = new Bundle();
bundle3.putInt("questions3" , 3);

Bundle bundle4 = new Bundle();
bundle4.putInt("questions4" , 4);

Fragment fragment = new QuestionsFragment();
fragment.setArguments(bundle1);

Fragment fragment = new QuestionsFragment();
fragment.setArguments(bundle2);

Fragment fragment = new QuestionsFragment();
fragment.setArguments(bundle3);

Fragment fragment = new QuestionsFragment();
fragment.setArguments(bundle4);

и onCreateView при QuestionsFragment использовании Bundle bundle1 = getArguments(); для получения целочисленных флагов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...