如何在cursorloader / cursoradapter中将id转换为label

时间:2016-12-26 23:58:48

标签: android simplecursoradapter android-cursorloader

我使用args.lookupRecord(recCustTable); args.lookupField(fieldNum(CustTable, AccountNum)); args.lookupValue(recCustTable.AccountNum); CursorLoader生成联系人列表。列表的每一行包含三个值: SimpleCursorAdapterNamePhone

PhoneType是一个int,但我想显示与该类型相关联的标签,即Mobile,Work,Home等。

我知道我可以枚举PhoneType中的CursorLoader并将每个语音类型转换为类型标签,并将结果值放在arraylist中。但如果我这样做,我相信我会失去"生活绑定"光标的好处,并假设我然后消耗该阵列的额外系统资源。

我找到了手机类型标签here,(在摘要部分中),但引用此列会导致无效列错误。我已尝试过其他URI,但这是迄今为止我发现的唯一一个返回联系人名称及其所有相关电话号码和类型的URI。根据上述链接,我并非真正理解为什么此URI会返回联系人姓名,而不是onLoaderFinished()CONTENT_ITEM_TYPE

我有两个问题:(1)有没有办法将ID转换为相应的标签,而无需枚举光标并手动转换为标签? (2)如果我必须枚举,我是否必须将结果放在CONTENT_TYPE中,或者是否有办法添加未绑定的"标签列"到光标?

以下是相关代码:

ArrayList

1 个答案:

答案 0 :(得分:0)

为了将不同的值绑定到UI而不是原始数据中的值,看起来必须创建自定义适配器。我创建了一个CustomAdapter,扩展了BaseAdapter,然后在getView()方法中,切换/设置了phoneType值以将其转换为phoneType文本。然后我相应地在布局中设置TextView。当你知道答案时,这是一个非常简单的解决方案。