在我的应用程序中,我需要访问存储在SQLite数据库中的数据,以创建名称+图标列表。
我的数据库中有两个表: 一个包含名称列(以及许多其他列的详细信息),但此名称列包含文本的ID,该文本的ID存储在另一个表(dictionnary)中。 它看起来像这样:
主表:
ClassID | Name | ...
1 | "foo <$>9973</> bar" | ...
dictionnay表:
ID | Content
9973 | "Name of the item"
我需要的是在用于生成 ListView 之前自动从字典中检索名称。如果dictionnay调用不是异步制作的话,那将是最好的......
我需要应用与php fonction preg_replace_callback 类似的内容来匹配模式并在字典中查找相应的文本。
我已经看过setViewValue的一些内容,但我不确定如何使用它。
有什么建议吗? 感谢
编辑: 为了更清楚一点,输出应该在我的例子中:
"foo Name of the item bar"
答案 0 :(得分:0)
由于我在使用SimpleCursorAdapter时遇到问题,我最终选择使用SimpleAdapter并通过我的dabatabase助手生成List。
生成列表的功能:
ArrayList<HashMap<String,String>> getCharList(){
if(list.isEmpty()) {
Cursor mdbCursor;
mdbCursor = this.getReadableDatabase()
.query("job", neenter code herew String[]{"ClassID _id", "Name"},
null, null, null, null, null);
if (mdbCursor != null) {
while (mdbCursor.moveToNext()) {
HashMap<String, String> temp = new HashMap<String, String>();
String Name;
temp.put("_id", mdbCursor.getString(0));
Name=mdbCursor.getString(1);
//I do my stuff on Name here
temp.put("Name", Name);
list.add(temp);
}
mdbCursor.close();
}
}
然后我在片段列表中以这种方式使用它:
db=new CharDatabase(getActivity());
String[] fromColumns = {"Name"};
int[] toViews = {R.id.charName};
mSimpleAdapter = new SimpleAdapter(getActivity(),
db.getCharList(),
R.layout.row,
fromColumns,
toViews);
这样我就可以轻松过滤元素了,如果我需要对它进行排序,我可以使用通常的排序函数来完成,然后调用: mSimpleAdapter.notifyDataSetChanged();