0

私はターゲットOS5+を意図したブラックベリーアプリに取り組んでいます。

Web サービスから取得したデータを表示する GridFieldManager を作成しています。データの 2 番目の列は複数行であることが多いため、行の高さを標準よりも大きく設定しました。これは私の GridFieldManager のコードです:

//Creation and property settings

GridFieldManager myGrid = new GridFieldManager(myScreenData.getSpese().size(), 3, GridFieldManager.USE_ALL_WIDTH|GridFieldManager.VERTICAL_SCROLL);
        myGrid.setColumnProperty(0,GridFieldManager.AUTO_SIZE, Display.getWidth()/3);
        myGrid.setColumnProperty(1,GridFieldManager.AUTO_SIZE, Display.getWidth()/3);  

        myGrid.setColumnProperty(2,GridFieldManager.AUTO_SIZE, Display.getWidth()/3);
        myGrid.setRowPadding(3);
        myGrid.setMargin(3,0,3,0);
        for(int i=1;i<myScreenData.getSpese().size()-1;i++){
            myGrid.setRowProperty(i, GridFieldManager.FIXED_SIZE, getFont().getHeight()*3);
        }

//title population
        myGrid.insert(new LabelField("DATA"), 0,FIELD_LEFT);
        myGrid.insert(new LabelField("CAUSALE"), 1,FIELD_LEFT);
        myGrid.insert(new LabelField("IMPORTO"), 2,FIELD_LEFT);
//Data population       
        for (int i=0;i<myScreenData.getSpese().size()-1;i++){
            System.out.println("aggiungo "+i+" di "+(myScreenData.getSpese().size()-1));
            SpesaDateAsString mySpesa = (SpesaDateAsString)myScreenData.getSpese().elementAt(i);
            myGrid.insert(new LabelField(mySpesa.getData(),LabelField.FIELD_LEFT|LabelField.FOCUSABLE),0+((i+1)*3),FIELD_LEFT);
            myGrid.insert(new LabelField(mySpesa.getCausale(),LabelField.FIELD_LEFT|LabelField.FIELD_VCENTER),1+((i+1)*3),FIELD_LEFT);
            myGrid.insert(new LabelField(mySpesa.getImporto(),LabelField.FIELD_LEFT),2+((i+1)*3),FIELD_LEFT);


        }
        System.out.println("aggiungo la tabella");
        result.add(myGrid);

ここでの問題は、リストの最後の行が切り取られることです。スクリーンショットは次のとおりです。

ブラックベリーストームシミュレーターのスクリーンショット

誰も何をすべきか知っていますか?なぜこうなった?

行プロパティ (FIXED、AUTO、PREFERRED... ETC) のパラメーターの可能なすべての組み合わせと、パディングとマージンの可能なすべての組み合わせを試しました。これを解決する方法を知っている人はいますか?

4

1 に答える 1

1

問題は次の行にあると思います。

for (int i=0;i<myScreenData.getSpese().size()-1;i++){

なぜあなたの制限はmyScreenData.getSpese().size()-1厳しく、テストは厳格なの<ですか? less または equal 演算子を使用するか、制限をmyScreenData.getSpese().size()

于 2012-06-18T10:26:26.537 に答える