私の Android アクティビティ内には、次のクラスがあります。
class Categoria {
public String nome;
public String id;
}
別のクラス内では、配列を介したループがあり、この配列の各エントリで、この 2 つの Categorias クラスのプロパティをフィードする必要があります。しかし、Categoria クラスで変数が null として開始されるため、null が返されます。ループは次のとおりです。
ArrayList<Categoria> categorias = null;
int eventType = parser.getEventType();
while(eventType != XmlPullParser.END_DOCUMENT){
String name = null;
switch(eventType){
case XmlPullParser.START_DOCUMENT:
categorias = new ArrayList<Categoria>();
break;
case XmlPullParser.START_TAG:
name = parser.getName();
if("categoria".equalsIgnoreCase(name)){
Categoria catAtual = new Categoria();
} else if("nome".equalsIgnoreCase(name)){
catAtual.nome = parser.nextText();
} else if("id".equalsIgnoreCase(name)){
catAtual.id = parser.nextText;
}
break;
case XmlPullParser.END_TAG:
name = parser.getName();
if(name.equalsIgnoreCase("categoria") && catAtual != null){
categorias.add(catAtual);
}
break;
}
eventType = parser.next();
}
ざっと見てみると、これ以上問題なくこのコードを実行できましたが、Eclipse では 2 行でエラーが検出されたため実行できませんでした。これ:
catAtual.nome = parser.nextText();
この:
catAtual.id = parser.nextText();
このエラーの表示:
catAtual を変数に解決できません
オブジェクトがあるケース内で作成され、別のケース内で使用されているためだと思います。コード全体を危険にさらさない回避策はありますか?
前もって感謝します。