【问题标题】:change the order of the items in the columns更改列中项目的顺序
【发布时间】:2018-08-01 01:54:58
【问题描述】:

我有这张图片:original image 但我想像这样改变它。 final image 我该怎么做?我正在使用 recyclerView

我的代码是:

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

    //Boton Atrás
    if(getSupportActionBar() != null){ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }

    //codigo de lista
    lista2ParaNotas = findViewById(R.id.lista2);
    lista2ParaNotas.setLayoutManager(new GridLayoutManager(this, 2, GridLayoutManager.VERTICAL,
          false));

    //lista2ParaNotas.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
    lista2ParaNotas.addItemDecoration(
            new DividerItemDecoration(this,DividerItemDecoration.VERTICAL));

    //ArrayList<PuntoNota> puntoNotaList = (ArrayList<PuntoNota>) getIntent().getSerializableExtra("miLista");
    listaFinal = (ArrayList<PuntoNota>) getIntent().getSerializableExtra("miLista");

    AdapterDatos adapter = new AdapterDatos(this, listaFinal);
    lista2ParaNotas.setAdapter(adapter);

}

我有这张图片:原始图片,但我想像这样更改它。最终图像 我该怎么做?我正在使用 recyclerView。 我的代码适配器数据

public class AdapterDatos extends RecyclerView.Adapter<AdapterDatos.ViewHolderDatos>{

private Context context;
private ArrayList<PuntoNota> puntoNotaList;

public AdapterDatos(Context context, ArrayList<PuntoNota> puntoNotaList) {
    this.context = context;
    this.puntoNotaList = puntoNotaList;
}

@NonNull
@Override
public ViewHolderDatos onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

    View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list,parent,false);
    ViewHolderDatos viewHolder = new ViewHolderDatos(itemView);
    return viewHolder;
}

@Override
public void onBindViewHolder(@NonNull ViewHolderDatos holder, int position) {

    holder.punto.setText(puntoNotaList.get(position).getPunto());
    holder.nota.setText(puntoNotaList.get(position).getNota());


    }

@Override
public int getItemCount() {
    return puntoNotaList.size();
}

public class ViewHolderDatos extends RecyclerView.ViewHolder {

    TextView punto, nota;

    public ViewHolderDatos(View item) {
        super(item);
        punto = item.findViewById(R.id.idPunto);
        nota = item.findViewById(R.id.idNota);
    }
}
}

【问题讨论】:

  • 请帮帮我。
  • 您能发布 AdapterDatos 的代码吗?
  • 我刚刚发送了我的adapterData

标签: android arraylist android-recyclerview


【解决方案1】:

请在转至适配器之前对您的收藏进行排序。

listaFinal = (ArrayList<PuntoNota>) getIntent().getSerializableExtra("miLista"); 

Collections.sort(listaFinal , new Comparator<PuntoNota>() {
            @Override
            public int compare(PuntoNota o1, PuntoNota o2) {
                return o1.getNumber().compareTo(o2.getNumber());
            }
        });

AdapterDatos adapter = new AdapterDatos(this, listaFinal);
lista2ParaNotas.setAdapter(adapter)

并且还将getNumber() 替换为您的自定义类字段。

【讨论】:

  • 排序无法正常工作。图像看起来像这样:i.stack.imgur.com/qS9nP.png 但我想要这样:i.stack.imgur.com/Ii9up.png
  • 好的,如果你想这样对齐,那么你必须在设置适配器之前编辑你的 ArrayList。即你必须将你的 ArrayList 分成两个 ArrayListsfor(int i=0;i&lt;listaFinal.size();i++){ if(i%2 == 0) list1.add(listaFinal.get(i)); else list1.add(listaFinal.get(i)); } listaFinal.cear(); listaFinal.addAll(list1); listaFinal.addAd=ll(list2);
猜你喜欢
  • 2023-03-23
  • 2020-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-20
  • 1970-01-01
相关资源
最近更新 更多