1

XMLをカスタムブロガークラス配列に解析しています。これにより、ブロガークラスの.name属性のChoiceGroupを画面に表示しようとしています。

for(int i = 0; i< intBloggerLength; i++)
    {
        menuItems[i] = myXMLParser.arrBloggers[i].getName();
        //lstView.append(myXMLParser.arrBloggers[i].getName().toString(), null);
    }
String strPause = "";
grpMenuItems = new ChoiceGroup("Bloggers", Choice.IMPLICIT, menuItems,
       new Image[] {null, null, null, null, null, null});

grpMenuItems =...」はエラーのある行であり、MIDletがクラッシュします。オンラインで例をたどっていますが、同じ方法でChoiceGroupにデータを入力していますが、誰かアイデアはありますか?

4

2 に答える 2

3

問題はChoice.IMPLICIT、ChoiceGroupには存在しないが、Listには存在しないを使用していたことです。

に変更すると問題なくChoice.EXCLUSIVE動作します。

于 2012-12-28T17:25:14.990 に答える
-2

ここでの主な間違いは、MIDletで適切なロギングを使用していないと思うことです。そのため、不要な説明のような問題のデバッグは複雑になります。投稿したコードスニペットの間違い。

  • ロギングが正しく行われると(興味がある場合は、詳細についてはここを参照してください)、エミュレーターでミッドレットを実行し、コンソールメッセージをチェックして、期待されるコードかどうかを確認できます。

投稿したコードスニペットと説明から、intBloggerLength値は一定ではないようです。問題があると述べた行でChoiceGroupコンストラクターを呼び出す方法と相まって、これは確実に取得する方法に見えますIllegalArgumentException

  • この行を折り返し、適切なロギングコードをcatchブロックに入れると、自分でそれを見つけることができますtry-catchが、それをしなかったので、単に推測する必要があります。エミュレータでテストする場合、例外メッセージとスタックトレースがコンソールに表示される可能性もあることに注意してください。

この例外を取得する方法については、使用するコンストラクターのAPIjavadocsを参照してください。

スロー:
...-配列がnullでなく、stringElements配列とは異なる長さの場合IllegalArgumentException...imageElements

APIドキュメントにリストされている例外がスローされる理由は他に3つ考えられますが、コードスニペットが非常に滑りやすいものに焦点を当てます。

コードを振り返ってみましょう。画像の配列の長さは6です。-これは、6と異なると{null, null, null, null, null, null}すぐに、 IAEがスローされることを意味します。intBloggerLength

nullこれを修正するには、画像配列の代わりに値を渡すのが最も簡単な方法です。または、配列をnullにしない必要がある場合は、有効な長さになるようにコードを記述します。

new Image[menuItems.length]
于 2012-12-28T17:22:21.600 に答える