【问题标题】:Sort recycler view by length of textview按 textview 的长度对回收站视图进行排序
【发布时间】:2018-10-03 13:01:35
【问题描述】:

我正在寻找以下问题的解决方案。

我有包含几个文本视图的回收器视图,我需要按其中一个文本视图的长度对其进行排序。最短的长度应该是第一个。我试图找到一些类似的问题,但我找不到任何问题。

有没有人有一些最佳的方法来做到这一点?

【问题讨论】:

  • 您需要为此对RecycleVview 列表进行排序。
  • 排序应该应用于项目列表而不是 recyclerView 或适配器。
  • 您应该按内容长度对列表进行排序,而不是对 recyclerview 项目进行排序
  • @KonstantinVolkov 是的,当然,我的意思是我有一个清单,可以把它放到回收站视图

标签: java android sorting android-recyclerview


【解决方案1】:

您将使用ComparatorList 进行排序。下面是方法。

adapter.setList(Collections.sort(adapter.getList(), new LengthComparator()););
adapter.notifyDataSetChanged();

LengthComparator.java

public class LengthComparator implements Comparator<String> {
    @Override
    public int compare(String s1, String s2) {
        return s1.length() - s2.length();
    }
}

【讨论】:

  • getList()setList() 是适配器中的方法。
【解决方案2】:

适用于在 Kotlin 中寻找答案的任何人 你的 List 应该在 Your ViewHolder 的绑定中使用(也在 Java 中)

 inner class ViewHolder(var binding: ViewDataBinding) : RecyclerView.ViewHolder(binding.root)
    {

        fun bind(step : Steps, handler: ItemClickHandler)
        {
            list?.sortedBy { steps -> itemView.title.length() }
            binding.setVariable(BR.steps,step)
            binding.executePendingBindings()

        }
    }

它对我有用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 2016-09-04
    • 1970-01-01
    相关资源
    最近更新 更多