对于这个简单的问题,我感到非常抱歉(我只使用了java一点)。
我有一个复选框的数组列表,它们与另一个数组列表中有相应的标签。
我希望能够将字符串变量设置为某个值,具体取决于所选复选框的标签是什么。我需要比较最多四个选中的复选框。因此,如果复选框A,标签为A = X,则该设备的序列号= Y.
我尝试使用contains()方法,但它返回null。 我曾尝试使用get(index).getText(),但这仅适用于单个索引(当我需要评估最多四个时)。
欢迎任何想法和建议。
谢谢!
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));
}
}
}
答案 0 :(得分:1)
我会使用静态地图(static
表示它是一个类字段,而不是实例字段,因此所有实例都可以重用一个地图):
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);
答案 1 :(得分:0)
你可以迭代arraylist并与String比较。
示例:假设您的列表属于String
类型。
Iterator<String> listIter = yourList.iterator();
while(listIter.hasNext())
{
String nextItemInList = listIter.next();
if(nextItemInList.equals("YourOtherString")
{
//Do your logic.
}
}