Когда я выбираю радиокнопку «приоритет» (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);
Измените слушателя на это:
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId == R.id.radioButton){
Collections.sort(phonelist);
}
}
Я думаю, R.id.radioButton
это идентификатор RadioButton, который был нажат правильно?
Удалите это rb.findViewById(checkedId);
Да, но когда я запускаю приложение и нажимаю кнопку RadioButton, приложение закрывается. Я не знаю, как я применил радиокнопку, чтобы изменить представление recyclerview.