Why isn't this Config API Code saving options?
This is wrong:

'#default_value' =&gt; \Drupal::config('config.factory')-&gt;get('author_config'),


It should be:

'#default_value' =&gt; \Drupal::config('my_config.config')-&gt;get('author_config'),


This is the entire form:

$form['author_config'] = array(
  '#type' =&gt; 'textfield',
  '#default_value' =&gt; \Drupal::config('my_config.config')-&gt;get('author_config'),
  '#title' =&gt; 'Author of Config',
  '#required' =&gt; TRUE,
);
$form['language'] = array(
  '#type' =&gt; 'radios',
  '#title' =&gt; 'Language',
  '#default_value' =&gt; \Drupal::config('my_config.config')-&gt;get('language'),
  '#options' =&gt; array(
    'EN' =&gt; t('English'),
    'SP' =&gt; t('Spanish'),
    'FR' =&gt; t('French'),
    'DE' =&gt; t('German'),
  ),
);
$form['drink'] = array(
  '#type' =&gt; 'select',
  '#title' =&gt; 'Select your drink',
  '#default_value' =&gt; \Drupal::config('my_config.config')-&gt;get('drink'),
  '#options' =&gt; array(
    'RB' =&gt; t('Root Beer'),
    'SD' =&gt; t('Sunny Delight'),
    'WR' =&gt; t('Water'),
    'OJ' =&gt; t('Orange Juice'),
  ),
);


Probably using $this->config the problem will be solved too