Как отсортировать многоколонный список, нажав на заголовки столбцов? Android - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть многоколонный 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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...