I am creating dynamic tabs.generateTab()
method help to set tabs to be shown or not. Like Property
to be shown, Info
not to be shown, etc. But I am getting stuck in some point. I want to display Property
tab. I am passing it like this:
String nextTab = getNextTab("Property");
Then it will check in getNextTab
method if Property
is true
or not. If it is false
then the method has to return the next true
value.
public LinkedHashMap generateTab() {
LinkedHashMap selectedTabs = new LinkedHashMap();
selectedTabs.put("People", true);
selectedTabs.put("Property", true);
selectedTabs.put("Info", false);
selectedTabs.put("Fixture", true);
selectedTabs.put("Fee", true);
selectedTabs.put("Process", true);
}
public String getNextTab(String currentTab) {
String nextTab = null;
Map<String, Boolean> tabList = generateTab();
Iterator iterator = tabList.keySet().iterator();
while (iterator.hasNext()) {
Map.Entry entry = (Map.Entry) iterator.next();
if (entry.getKey().equals(currentTab)) {
if (tabList.get(entry.getKey()).equals(true)) {
nextTab = entry.getKey().toString();
break;
}
}
}
return nextTab;
}
can you help me to get next key which i am checked in else part?
Best Answer
There seems to be multiple problems with your code
1)
public LinkedHashMap generateTab()
: It should ideally return a LinkedHashMap. (I am assuming its a copy paste error)2)
iterator.next()
: This should be returning aClassCastException
for casting String to Map.Entry3)To return nextTab, you must call
iterator.next()
once to move the iterator to next item.Change your
getNextTab()
function to look something like below.