【问题标题】:Sort Recyclerview in an ascending order from Parse in android从Android中的Parse按升序对Recyclerview进行排序
【发布时间】:2017-10-27 00:09:02
【问题描述】:

我正在尝试从 Parse 中按升序对整数进行排序,我以前从未这样做过,但这是我在 Recyclerview 适配器中所做的:

公共类 StudentAdapter 扩展 RecyclerView.Adapter {

private List<LogDetails> detailsList;
private Context context;

public StudentAdapter(List<LogDetails> detailsList, Context context) {
    this.detailsList = detailsList;
    this.context = context;
}

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

    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fragment_student, parent, false);

    return new StudentViewHolder(view);
}

@Override
public void onBindViewHolder(final StudentViewHolder holder, int position) {

    LogDetails studentDetails = detailsList.get(position);
    try {
        //For Team A Only
        holder.name_a.setText(studentDetails.getTeam_a().fetchIfNeeded().getString("team_name"));
        String win = String.valueOf(studentDetails.getTeam_a().fetchIfNeeded().getInt("w"));
        String lose = String.valueOf(studentDetails.getTeam_a().fetchIfNeeded().getInt("l"));
        String draw = String.valueOf(studentDetails.getTeam_a().fetchIfNeeded().getInt("d"));
        String play = String.valueOf(studentDetails.getTeam_a().fetchIfNeeded().getInt("p"));
        String points = String.valueOf(studentDetails.getTeam_a().fetchIfNeeded().getInt("pts"));
        holder.w_a.setText(win);
        holder.l_a.setText(lose);
        holder.d_a.setText(draw);
        holder.p_a.setText(play);
        holder.pts_a.setText(points);

        holder.name_b.setText(studentDetails.getTeam_b().fetchIfNeeded().getString("team_name"));
        String win2 = String.valueOf(studentDetails.getTeam_b().fetchIfNeeded().getInt("w"));
        String lose2 = String.valueOf(studentDetails.getTeam_b().fetchIfNeeded().getInt("l"));
        String draw2 = String.valueOf(studentDetails.getTeam_b().fetchIfNeeded().getInt("d"));
        String play2 = String.valueOf(studentDetails.getTeam_b().fetchIfNeeded().getInt("p"));
        String points2 = String.valueOf(studentDetails.getTeam_b().fetchIfNeeded().getInt("pts"));
        holder.w_b.setText(win2);
        holder.l_b.setText(lose2);
        holder.d_b.setText(draw2);
        holder.p_b.setText(play2);
        holder.pts_b.setText(points2);

        holder.name_c.setText(studentDetails.getTeam_c().fetchIfNeeded().getString("team_name"));
        String win3 = String.valueOf(studentDetails.getTeam_c().fetchIfNeeded().getInt("w"));
        String lose3 = String.valueOf(studentDetails.getTeam_c().fetchIfNeeded().getInt("l"));
        String draw3 = String.valueOf(studentDetails.getTeam_c().fetchIfNeeded().getInt("d"));
        String play3 = String.valueOf(studentDetails.getTeam_c().fetchIfNeeded().getInt("p"));
        String points3 = String.valueOf(studentDetails.getTeam_c().fetchIfNeeded().getInt("pts"));
        holder.w_c.setText(win3);
        holder.l_c.setText(lose3);
        holder.d_c.setText(draw3);
        holder.p_c.setText(play3);
        holder.pts_c.setText(points3);

        holder.name_d.setText(studentDetails.getTeam_d().fetchIfNeeded().getString("team_name"));
        String win4 = String.valueOf(studentDetails.getTeam_d().fetchIfNeeded().getInt("w"));
        String lose4 = String.valueOf(studentDetails.getTeam_d().fetchIfNeeded().getInt("l"));
        String draw4 = String.valueOf(studentDetails.getTeam_d().fetchIfNeeded().getInt("d"));
        String play4 = String.valueOf(studentDetails.getTeam_d().fetchIfNeeded().getInt("p"));
        String points4 = String.valueOf(studentDetails.getTeam_d().fetchIfNeeded().getInt("pts"));
        holder.w_d.setText(win4);
        holder.l_d.setText(lose4);
        holder.d_d.setText(draw4);
        holder.p_d.setText(play4);
        holder.pts_d.setText(points4);


    } catch (ParseException e) {
        e.printStackTrace();
    }

}

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

public class StudentViewHolder extends RecyclerView.ViewHolder{

    TextView name_a, p_a, w_a, l_a, d_a, pts_a;
    TextView name_b, p_b, w_b, l_b, d_b, pts_b;
    TextView name_c, p_c, w_c, l_c, d_c, pts_c;
    TextView name_d, p_d, w_d, l_d, d_d, pts_d;
    View  mView;
    private LogDetails mLogDetails;

    public StudentViewHolder(View itemView) {
        super(itemView);

        mView = itemView;
        name_a = (TextView) mView.findViewById(R.id.tv_teamA);
        p_a = (TextView) mView.findViewById(R.id.tv_teamA_p);
        w_a = (TextView) mView.findViewById(R.id.tv_teamA_w);
        l_a = (TextView) mView.findViewById(R.id.tv_teamA_l);
        d_a = (TextView) mView.findViewById(R.id.tv_teamA_d);
        pts_a = (TextView) mView.findViewById(R.id.tv_teamA_pts);

        name_b = (TextView) mView.findViewById(R.id.tv_teamB);
        p_b = (TextView) mView.findViewById(R.id.tv_teamB_p);
        w_b = (TextView) mView.findViewById(R.id.tv_teamB_w);
        l_b = (TextView) mView.findViewById(R.id.tv_teamB_l);
        d_b = (TextView) mView.findViewById(R.id.tv_teamB_d);
        pts_b = (TextView) mView.findViewById(R.id.tv_teamB_pts);

        name_c = (TextView) mView.findViewById(R.id.tv_teamC);
        p_c = (TextView) mView.findViewById(R.id.tv_teamC_p);
        w_c = (TextView) mView.findViewById(R.id.tv_teamC_w);
        l_c = (TextView) mView.findViewById(R.id.tv_teamC_l);
        d_c = (TextView) mView.findViewById(R.id.tv_teamC_d);
        pts_c = (TextView) mView.findViewById(R.id.tv_teamC_pts);

        name_d = (TextView) mView.findViewById(R.id.tv_teamD);
        p_d = (TextView) mView.findViewById(R.id.tv_teamD_p);
        w_d = (TextView) mView.findViewById(R.id.tv_teamD_w);
        l_d = (TextView) mView.findViewById(R.id.tv_teamD_l);
        d_d = (TextView) mView.findViewById(R.id.tv_teamD_d);
        pts_d = (TextView) mView.findViewById(R.id.tv_teamD_pts);

    }

    @Override
    public String toString() {
        return super.toString() + " '" + "Content View" +
                "'";
    }

}

}

我在我的 recyclerview 中有一个日志表,其中显示了带有积分的团队,因此得分最高的应该按升序排在第一位。

【问题讨论】:

  • 我不明白你可以在 textview 中说什么排序,请澄清你的问题。
  • 我刚刚更新了,谢谢。 “我有一个日志表,显示球队的积分,所以得分最高的应该按升序排在第一位”
  • 好吧好吧……

标签: android sorting arraylist parse-platform android-recyclerview


【解决方案1】:

你可以使用

Collections.sort(yourlist);

【讨论】:

  • 它是否根据行中的整数排序?因为我在每一行中有多个 TextViews 但我希望它根据单个整数 textview 排序。
  • 在 LogDetails 类中,您实现了 Comparable 方法,并使用整数实现它;当你想调用 Collections.sort(detailsList);
猜你喜欢
  • 1970-01-01
  • 2013-05-30
  • 2019-07-23
  • 2015-11-16
  • 1970-01-01
  • 2012-11-29
  • 2011-12-08
  • 2011-07-30
  • 1970-01-01
相关资源
最近更新 更多