Почему радиокнопка не работает с этим кодом?

Когда я выбираю радиокнопку «приоритет» (id = radioButton) для сортировки по рейтингу, приложение закрывается. Когда я удаляю RadioGroup.OnCheckedChangeListener () { @Override public void onCheckedChanged (группа RadioGroup, int checkedId) { rb.findViewById (checkedId); если (rb == rb1) { Collections.sort(список телефонов); } } }); эта часть работает нормально, кроме сортировки.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);




    attachViews();
    this.initializeViews();




    /*RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this);
    recyclerView.setLayoutManager(layoutManager);
    phoneAdapter = new PhoneAdapter(this, phonelist);
    recyclerView.setAdapter(phoneAdapter);*/

    updateTotal();










}

public void sortData(boolean asc) {
    //SORT ARRAY ASCENDING AND DESCENDING
    if (asc) {
        Collections.sort(phonelist);
    } else {
        Collections.reverse(phonelist);
    }
}


private void initializeViews()
{
    rg=findViewById(R.id.radiogroup1);
    rb1=findViewById(R.id.radioButton);
    rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            rb.findViewById(checkedId);
            if (rb==rb1){
                Collections.sort(phonelist);
            }
        }
    });


    RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this);
    recyclerView= (RecyclerView) findViewById(R.id.recyclerView);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));

    phoneAdapter = new PhoneAdapter(this, phonelist);
    recyclerView.setAdapter(phoneAdapter);
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
41
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Измените слушателя на это:

public void onCheckedChanged(RadioGroup group, int checkedId) {
    if (checkedId == R.id.radioButton){
        Collections.sort(phonelist);
    }
}

Я думаю, R.id.radioButton это идентификатор RadioButton, который был нажат правильно?

Да, но когда я запускаю приложение и нажимаю кнопку RadioButton, приложение закрывается. Я не знаю, как я применил радиокнопку, чтобы изменить представление recyclerview.

cvsrt 07.04.2019 18:27

Удалите это rb.findViewById(checkedId);

forpas 07.04.2019 18:30

Другие вопросы по теме