コンテンツ値をデータベースにロードしようとしています。ここのコードは機能します:
private void processTable(final JsonReader tableReader, final ModelLoader loader) throws IOException
{
tableReader.beginArray();
while (tableReader.hasNext()) {
String id = loader.getIdColumnName();
final ContentValues cv = loader.parseModel(tableReader);
persistData(loader.getTableName(),id, cv);
}
tableReader.endArray();
}
ただし、パーツを追加すると失敗します。
private void processTable(final JsonReader tableReader, final ModelLoader loader) throws IOException
{
tableReader.beginArray();
while (tableReader.hasNext()) {
String id = loader.getIdColumnName();
final ContentValues cv = loader.parseModel(tableReader);
if (loader.getModelType() == Filter.LOADER.getModelType()) //Checks to see if the filter sub arrays are there
{
while(tableReader.hasNext())
{
String name = "";
try{
tableReader.
name = tableReader.nextName();
} catch (Exception e) {
tableReader.skipValue();
continue;
}
if (name.equals("ImageOverlays"))
processTable(tableReader, mLoader.getSpecificLoader("ImageOverlays"));
else if (name.equals("ColorOverlays"))
processTable(tableReader, mLoader.getSpecificLoader("ColorOverlays"));
}
}
persistData(loader.getTableName(),id, cv);
}
tableReader.endArray();
}
追加コードの目的は、フィルターから特定のアイテムを取得して処理することです。このコードを使用すると、以前に使用したフィルターの値すら取得できません。
値をスキップすることは、その前に宣言したContentValuescvをどういうわけか台無しにしていると思います。助けてくれてありがとう。