- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在 Android 中,如何使用带有数字的 AlphabetIndexer?下面的代码似乎不起作用
AlphabetIndexer alphabetIndexer =
new AlphabetIndexer(cursor, COLUMN_INDEX,"0123456789")
最佳答案
AlphabetIndexer 似乎可以很好地处理数字。我创建了一个简单的 ListFragment,它结合了字符串和数字列表,对它们进行排序并在具有功能性快速滚动的列表中显示它们。这也适用于只有数字的列表。
public class ListFragment extends android.support.v4.app.ListFragment {
public static final String VALUE_COLUMN = "value_column";
public static final String[] PROJECTION = new String[] {
BaseColumns._ID,
VALUE_COLUMN
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new AlphanumericAdapter(getActivity(),
generateDataCursor(getSortedListOfEntries())));
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
getListView().setFastScrollAlwaysVisible(true);
getListView().setFastScrollEnabled(true);
}
private Cursor generateDataCursor(ArrayList<String> entriesAsArrayList) {
MatrixCursor entriesAsCursor = new MatrixCursor(PROJECTION);
for (String entry : entriesAsArrayList) {
entriesAsCursor.addRow(new String[] { "0", entry });
}
return entriesAsCursor;
}
private ArrayList<String> getSortedListOfEntries() {
ArrayList<String> listEntries = new ArrayList<String>();
for (Locale locale : Locale.getAvailableLocales()) {
int randomIntegerBetweenZeroAndNine = (int) (Math.random() * 10);
listEntries.add(String.valueOf(randomIntegerBetweenZeroAndNine));
String countryName = locale.getDisplayCountry();
if (TextUtils.isEmpty(countryName)) listEntries.add(countryName);
}
Collections.sort(listEntries);
return listEntries;
}
private class AlphanumericAdapter extends SimpleCursorAdapter implements SectionIndexer {
private final AlphabetIndexer mAlphabetIndexer;
public AlphanumericAdapter(Context context, Cursor cursor) {
super(context, android.R.layout.simple_list_item_1, cursor, new String[] { VALUE_COLUMN }, new int[] { android.R.id.text1 });
mAlphabetIndexer = new AlphabetIndexer(cursor, 1, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ");
}
@Override
public Object[] getSections() {
return mAlphabetIndexer.getSections();
}
@Override
public int getPositionForSection(int sectionIndex) {
return mAlphabetIndexer.getPositionForSection(sectionIndex);
}
@Override
public int getSectionForPosition(int position) {
return mAlphabetIndexer.getSectionForPosition(position);
}
}
}
关于带有数字的android alphabetindexer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13027840/
在 Android 中,如何使用带有数字的 AlphabetIndexer?下面的代码似乎不起作用 AlphabetIndexer alphabetIndexer = new
我正在尝试实现 AlphabetIndexer 来帮助用户滚动浏览我的列表,但是当我运行该应用程序时,列表上没有显示任何内容。谁能告诉我为什么? 注意:我没有在 Adapter 的构造函数中实例化 A
我正在为自定义 ListView 使用 AlphabetIndexer、SectionIndexer、自定义 CursorAdapter。以下是相同的代码。但是我在滚动列表时看不到字母表。我还尝试了以
我正在尝试使用 AlphabetIndexer 实现快速滚动条,但是当光标发生变化时,它不会刷新索引缓存。在我的 CursorAdapter 构造函数中,我调用了 setCursor(cursor)
我有一个 ListView,其中 fastScrollAlwaysVisible 和 fastScrollEnabled 都设置为 true。在对我的 Adapter 和一个 AlphabetInde
我想在 GridView 中实现 SecionIndexer,但我遇到了很多麻烦。我必须更改现有项目的代码才能添加它。根据我的研究,我认为如果使用光标应该是可能的。 有没有人有我可以从中看到如何实现它
我知道AlphabetIndexer Android 中的类使用 ASCII ordering订购列表中的项目。这意味着如果我有以小写字母“a”开头的项目,它将在大写字母“Z”之后排序,这似乎不太合逻
我有一个 CustomCursorAdapter 来制作漂亮的节标题。我从 ListView 行中删除了所有图像,但滚动仍然很慢。有人知道优化这个的方法吗?即使对于 2000 个联系人,在 Viber
我正在尝试用这样的自定义适配器实现 AlphabetIndexer AlphabetIndexer with Custom Adapter 我的类 ContactsCursorAdapter 扩展了
我是一名优秀的程序员,十分优秀!