У меня есть многоколонный listView, который динамически заполняется из двух массивов String и двух массивов int.Я также добавил заголовок (используя addHeaderView), который в основном представляет собой 4 textViews в ConstraintLayout, так же, как rowView.
Например, имя первого столбца - «nameAndSurname», мне нужно иметь возможность щелкнуть по нему и отсортировать все имена и фамилии в моем списке просмотра в алфавитном порядке.И то же самое для других столбцов: «работа», «зарплата», «возраст».
Теперь, когда я нажимаю на заголовок, весь заголовок подсвечивается, и ничего не происходит.
Большое спасибо за ваши отзывы !!
Мой код ниже:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_people);
ListView peopleList = findViewById(R.id.peopleList);
ViewGroup headerView=(ViewGroup)getLayoutInflater().inflate(R.layout.people_header, peopleList,false);
peopleList.addHeaderView(headerView, null, true);
MyAdapter adapter = new MyAdapter(this, namesAndSurnames, jobs, salaries, ages);
peopleList.setAdapter(adapter);
peopleList.setOnItemClickListener(this);
}
//and MyAdapter class
class MyAdapter extends ArrayAdapter<String> {
Context context;
String[] myNamesAndSurnames;
String[] myJobs;
String[] myAges;
String[] mySalaries;
MyAdapter(Context c, String[] namesAndSurnames, String[] jobs, String[] salaries, String[] ages) {
super(c, R.layout.people_row, R.id.rowName, namesAndSurnames);
this.context = c;
this.myNamesAndSurnames = namesAndSurnames;
this.myJobs = jobs;
this.mySalaries = salaries;
this.myAges = ages;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater layoutInflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View peopleRow = layoutInflater.inflate(R.layout.people_row, parent, false);
TextView rowName = peopleRow.findViewById(R.id.rowName);
TextView rowJob = peopleRow.findViewById(R.id.rowJob);
TextView rowSalary = peopleRow.findViewById(R.id.rowSalary);
TextView rowAge = peopleRow.findViewById(R.id.rowAge);
rowName.setText(myNamesAndSurnames[position]);
rowJob.setText(myJobs[position]);
rowSalary.setText(mySalaries[position]);
rowAge.setText(myAges[position]);
return peopleRow;
}
}