Я хотел бы знать, как я могу отсортировать свой список в порядке убывания в Android studio

#java #android #android-studio

Вопрос:

У меня есть приложение для Android, которое возвращает представление списка с данными, которые вводит пользователь, я хотел бы знать, как я могу отсортировать представление списка по порядку FCM, где самый большой FCM отображается вверху, а самый маленький внизу, теперь он всегда отображается один под другим, не упорядочивая.

MainActivity.java

 package br.ldkstudiosart.freqmax;  import androidx.appcompat.app.AppCompatActivity;  import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.Toast;  import java.util.ArrayList; import java.util.List;  public class MainActivity extends AppCompatActivity {   EditText txtNome;  EditText txtIdade;  Button btnAdicionarCalcular;  ListView listAtletas;  Listlt;Atletagt; atletas = new ArrayListlt;gt;();  AtletaAdapter adapter;   //EditText result;   View.OnClickListener btClickListener = new View.OnClickListener() {  @Override  public void onClick(View v) {  Log.d("EVT", "EVT Clique no botao!");  processarCliqueAdicionarCalcular(v);  }  };   @Override  protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);   txtNome = findViewById(R.id.txtNome);  txtIdade = findViewById(R.id.txtIdade);  btnAdicionarCalcular = findViewById(R.id.btnAdicionarCalcular);  btnAdicionarCalcular.setOnClickListener(btClickListener);  listAtletas = findViewById(R.id.listAtletas);  adapter = new AtletaAdapter(atletas, getBaseContext());  listAtletas.setAdapter(adapter);  }   public void processarCliqueAdicionarCalcular(View v) {  Atleta a = new Atleta();  a.setNome(txtNome.getText().toString());  //a.setIdade(txtIdade.getText().toString());   int soma = Integer.valueOf(txtIdade.getText().toString());  int total = 220 - soma;  a.setIdade(String.valueOf("FCM: "   total));   atletas.add(a);  adapter.notifyDataSetChanged();  Toast.makeText(getBaseContext(), a.toString(), Toast.LENGTH_LONG).show();  }   }  

AtletaAdapter.java

 package br.ldkstudiosart.freqmax;  import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView;  import java.util.List;  public class AtletaAdapter extends BaseAdapter {   LayoutInflater inflater;  Listlt;Atletagt; atletas;   AtletaAdapter(Listlt;Atletagt; atletas, Context ctx) {  this.atletas = atletas;  inflater = LayoutInflater.from(ctx);  }   @Override  public int getCount() {  return atletas.size();  }   @Override  public Object getItem(int position) {  return atletas.get(position);  }   @Override  public long getItemId(int position) {  return position;  }   @Override  public View getView(int position, View convertView, ViewGroup parent) {   View v = inflater.inflate(R.layout.atleta_item, null);  TextView txtNome = v.findViewById(R.id.txtNomeItem);  TextView txtIdade = v.findViewById(R.id.txtIdadeItem);   Atleta a = atletas.get(position);  txtNome.setText(a.getNome());  txtIdade.setText(a.getIdade());  return v;  } }  

Atleta.java

 package br.ldkstudiosart.freqmax;  public class Atleta {  private String nome;  private String idade;   public String getNome() {  return nome;  }   public void setNome(String nome) {  this.nome = nome;  }   public String getIdade() {  return idade;  }   public void setIdade(String idade) {  this.idade = idade;  }   @Override  public String toString() {  //return "Atleta{"    // "nome='"   nome   '''    // ", idade='"   idade   '''    // '}';  return "Nome: "   nome   " Idade: "   idade;  } }  

Комментарии:

1. Отсортируйте массив в обратном порядке, который вы использовали для ввода в ListViewAdapter, прежде чем вызывать функцию setAdapter в ListView

2. Извините, не могли бы вы показать мне, где это сделать?

Ответ №1:

Вы могли бы реализовать сопоставимый интерфейсlt;gt; с Atleta, чтобы позже отсортировать его с помощью:

 Collections.sort(-YOUR ARRAYLIST HERE-);  

Комментарии:

1.Извините, не могли бы вы показать мне, где это сделать?