Eclipse 3.7.2 Android 2.3.3 / API レベル 10 の使用
XML ファイルの読み取りに問題があります。このコードを使用してファイルの適切なハンドルを取得し、情報を読み取ってユーザーに表示し、変更を加えて更新する必要があるため、入力/出力用に開きます。
ファイルを読みに行くと、C# の世界から来て、慣れていない動作が見られます。デバッグ パースペクティブでは、変数に赤い四角の値があります。これで問題ないかもしれませんが、私の最初の考えは赤==トラブルですか?ただし、データ (デバッグ パースペクティブの変数ウィンドウ内のデータ) は問題ないように見えるので、続行します。私の eventType はゼロで、case ステートメントに入りましたが、例外がスローされました。ここでボールを落とします。Java の例外に関する詳細情報を取得する方法がわかりません。たとえば、C# の世界では、内部例外が発生する可能性があります。Javaには、まだ学んでいない方法があると確信しています。
手順は次のとおりです。1 行目から 9 行目に直接ジャンプします。F6(「ステップ オーバー」の Eclipse デバッグ ショートカット) 4行目に移動し、最後F6に 9 行目に戻りF6、一般的な例外のキャッチに移動します。
try
{
DataFileOut = new FileOutputStream(LiftFile);
DataFileIn = new FileInputStream(LiftFile);
InputStreamReader isr = new InputStreamReader(DataFileIn);
// auto-detect the encoding from the stream
parser.setInput(isr);
int eventType = parser.getEventType();
Category currentCategory = null;
boolean done = false;
while (eventType != XmlPullParser.END_DOCUMENT && !done)
{
String name = null;
0 //eventType = 2;
1 switch (eventType)
{
3 case XmlPullParser.START_DOCUMENT:
4 break;
case XmlPullParser.START_TAG:
....
}
9 eventType = parser.next();
}
}
私の考えでは、FileInputStream ハンドルが間違っているか、XML ドキュメントの形式が正しくないのでしょうか?? 他の考えはありますか?
<?xml version="1.0" encoding="UTF-8"?>
<ExcersiseInformation>
<Lifts count="6">
<Lift>
<ID>1001001</ID>
<Name>Hammer Curls</Name>
<PreviousLift>45</PreviousLift>
<PreviousReps>8</PreviousReps>
<SuggestLift>45</SuggestLift>
<SuggestReps>10</SuggestReps>
<ActualLift></ActualLift>
<ActualReps></ActualReps>
</Lift>
.....
</Lifts>
</ExcersiseInformation>