If I (correctly) understand what you're trying to do, then I'd say you're going about things the hard way.
My understanding is that your Industry
picklist is a dependent picklist where the values are controlled by recordtype.
In situations like these, I like to use what I call a dummy object in a controller or extension.
That would look like this:
public class MyControllerExtension{
// The dummy variable is just here to make life easier for us.
// It needs to be publicly readable to be used in visualforce.
// Generally, dummy variables themselves aren't saved along with other data,
// though if you override or create your own save() method, you can use the
// dummy variable to set values on the object instance that you are saving.
public Account dummyAccount {get; set;}
public MyControllerExtension(ApexPages.StandardController stdCon){
dummyAccount = new Account(
// RecordTypeInfosByName is a map keyed on the record type's label, rather than
// the API name (which in my example would be My_Record_Type_Label).
// Basically, leave any spaces alone instead of converting them to
// underscores
RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByName().get('My Record Type Label').getRecordTypeId()
// If you get a 'field referenced without being queried' error, then
// the simple fix would be to just include that field here in the
// constructor for the relevant dummy object.
// Don't forget to add a comma after the assignment to recordTypeId
// if you uncomment this line!
//Industry = null
);
}
}
With that in place, you can add the picklist to your visualforce page quite simply
<apex:form>
<!-- Other input/output fields that you already have would go here -->
<!-- Using apex:inputField here causes Salesforce to do the grunt work of
figuring out exactly which picklist values to display. -->
<apex:inputField value="{!dummyAccount.Industry}" />
</apex:form>