gpt4 book ai didi

android - 如何在日期上使用 SectionIndexer

转载 作者:太空狗 更新时间:2023-10-29 12:49:51 25 4
gpt4 key购买 nike

我一直在寻找在我的 listView 中对日期使用 SectionIndexer 的方法。我想在快速滚动列表时显示“短日期”。我看到几年前的一篇帖子,其中一个人说他已经成功了,但他遇到了不同的问题,但遗憾的是他没有为他的方法发布任何代码。

我想我必须对我的自定义 ArrayAdapter 做一些事情,但我不太确定是什么,有人知道我在哪里可以找到这样的东西吗?

谢谢,-埃里克

最佳答案

好吧,这就是我最终为了让它正常工作所做的事情,以防万一将来其他人正在寻找类似的东西。

private class TransactionAdapter extends ArrayAdapter<Transaction> implements SectionIndexer
{
private ArrayList<Transaction> items;
private Context context;
LinkedHashMap<String, Integer> dateIndexer;
String[] sections;

public TransactionAdapter(Context context, int textViewResourceId, ArrayList<Transaction> items)
{
super(context, textViewResourceId, items);
this.context = context;
this.items = items;

this.dateIndexer = new LinkedHashMap<String, Integer>();
int size = items.size();
String prDate = " ";

for (int x = 0; x < size; x++)
{
Transaction tr = items.get(x);
Calendar date = tr.getDate();
String month = date.getDisplayName(Calendar.MONTH, Calendar.SHORT, Locale.getDefault());
String year = String.valueOf(date.get(Calendar.YEAR));
String shortDate = month + " " + year;

if( !shortDate.equals(prDate))
{
this.dateIndexer.put(shortDate, x);
prDate = shortDate;
}
}

Set<String> sectionDates = this.dateIndexer.keySet();

// create a list from the set to sort
ArrayList<String> sectionList = new ArrayList<String>(sectionDates);
this.sections = new String[sectionList.size()];
sectionList.toArray(this.sections);
}

public int getPositionForSection(int section)
{
return dateIndexer.get(this.sections[section]);
}

public int getSectionForPosition(int position)
{
return 0;
}

public Object[] getSections()
{
return this.sections;
}
}

我在两个地方的组合中找到了答案:

  1. 本教程帮助我初步实现了 SectionIndexter:Android ListView with fastscroll and section index

  2. 这篇文章解决了我在使用 HashMap 更改数组顺序时遇到的问题,它建议改用 LinkedHashMap。 is the Java HashMap keySet() iteration order consistent

关于android - 如何在日期上使用 SectionIndexer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13367531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com