Home > Net >  How to create List for Text Editing Controller
How to create List for Text Editing Controller

Time:11-14

I have a lot of Text Editing Controller and instead of repeating it and writing it again and again, is there a way to create a list and assign it to a controller?

TextEditingController _Length =  TextEditingController();
TextEditingController _Width =  TextEditingController();

TextEditingController _LengthInch =  TextEditingController();
TextEditingController _WidthInch =  TextEditingController();

TextEditingController _LengthFt =  TextEditingController();
TextEditingController _WidthFt =  TextEditingController();

TextEditingController doorLength = TextEditingController();
TextEditingController doorWidth = TextEditingController();

TextEditingController doorLengthFt = TextEditingController();
TextEditingController doorWidthFt = TextEditingController();

TextEditingController doorLengthInch = TextEditingController();
TextEditingController doorWidthInch = TextEditingController();

TextEditingController tileLength = TextEditingController();
TextEditingController tileWidth = TextEditingController();

TextEditingController tileLengthInch = TextEditingController();
TextEditingController tileWidthInch = TextEditingController();

I use these text editing controllers in different text field form.

any help is highly appreciated.

CodePudding user response:

    // Your controller Identity Name
    enum YourSpecialControllerKeysNameForClass {
      _Length,
      _Width,
      _LengthInch,
      _WidthInch,
      _LengthFt,
      _WidthFt,
      doorLength,
      doorWidth,
      doorLengthFt,
      doorWidthFt,
      doorLengthInch,
      doorWidthInch,
      tileLength,
      tileWidth,
      tileLengthInch,
      tileWidthInch,
    }
    
    
    
      // Create each for controller names
  Map<YourSpecialControllerKeysNameForClass, TextEditingController> createTextControllers() {
    Map<YourSpecialControllerKeysNameForClass, TextEditingController> createdList = {};

    createdList.addEntries(YourSpecialControllerKeysNameForClass.values.map((e) => MapEntry<YourSpecialControllerKeysNameForClass, TextEditingController>(e, TextEditingController())).toList());

    return createdList;
  }
    
      // Get Controllers By Name
      TextEditingController getTextController(YourSpecialControllerKeysNameForClass key) {
        return controllerList.entries.toList().firstWhere((element) => element.key == key).value;
      }
    
      // And Define this any Widget  
      Map<YourSpecialControllerKeysNameForClass, TextEditingController> controllerList = {};
    
    
      // Initialize youR contollers in initState
      initState() {
    
        // Create Contoller
        controllerList = createTextControllers();
      }
    
    
    
    
      // Usage
      getTextController(YourSpecialControllerKeysNameForClass._Length);
  • Related