1

この簡単な質問をお詫びします(私はJavaを少しだけ使っています)。

チェックボックスの配列リストがあり、別の配列リストからの対応するラベルがあります。

選択したチェックボックスのラベルに応じて、文字列変数を特定の値に設定できるようにしたい。選択した最大4つのチェックボックスを比較する必要があります。したがって、ラベルA = XのチェックボックスAの場合、そのデバイスのシリアル番号はYです。

contains()メソッドを使用しようとしましたが、nullが返されます。get(index).getText()を使用しようとしましたが、これは単一のインデックスに対してのみ機能します(評価する必要があるインデックスが4つまである場合)。

任意のアイデアや提案を歓迎します。

ありがとう!!

ironmantis7x

================================================== =================

これが私のコードの一部であり、以下の提案があります。

        if (PlatformPanel.Android.isSelected() == true)
        {
            Iterator<JCheckBox> listIter = Devices.selectedDevices.iterator();
            while(listIter.hasNext())
            {
                JCheckBox nextItemInList = listIter.next();
                if (nextItemInList.toString().equals("HTC Droid Eris"))         
                //if (Devices.selectedDevices.iterator().toString() .equals("HTC Droid Eris"))
                 {
                    selectedSerial = "A100000DA78159";
                    System.out.println(selectedSerial);
                    System.out.println(Devices.selectedDevices.get(0));
                 }

                if (nextItemInList.toString().equals("Asus Transformer Prime (#1)"))            
                //if (Devices.selectedDevices.iterator().toString() .equals("Asus Transformer Prime (#1)"))
                {
                    selectedSerial = "BKOKAS127271";
                    System.out.println(selectedSerial);
                    System.out.println(Devices.selectedDevices.get(0));
                }
            }            
        }
4

2 に答える 2

1

静的マップを使用します(staticつまり、インスタンスフィールドではなくクラスフィールドであるため、すべてのインスタンスが1つのマップを再利用できます)。

public class MyClass {

    private static Map<String, String> serialNumbers = new HashMap<String, String>() {{
        put("HTC Droid Eris", "A100000DA78159");
        put("Asus Transformer Prime (#1)", "BKOKAS127271");
        // etc
    }};

    // rest of class
}

次に、コードでは、それはワンライナーです。

String selectedValue = ...; // get it directly from the drop down
String selectedSerial = serialNumbers.get(selectedValue);
于 2012-10-25T22:13:53.440 に答える
0

arraylistを繰り返し処理して、Stringと比較することができます。

例:リストのタイプが。であると仮定しますString

Iterator<String> listIter = yourList.iterator();
while(listIter.hasNext())
{
String nextItemInList = listIter.next();
if(nextItemInList.equals("YourOtherString")
{
//Do your logic.
}
}
于 2012-10-25T21:34:30.163 に答える