Verify Submitted Form Values and Show Warning Messages with Setting API

First add a validation callback to your register_settings:

register_setting( 'settingsapi_optiongroupname', 'settingsapi_optionname','validation_callback');

then define validation_callback:

function validation_callback($input){
    //check if all is good
    //If so then return the wanted value to be saved
    //If Not then hook your admin notice function and return null to be saved ex:
    if ($something){
        return $input;
    }else{
        add_settings_error('unique_identifyer',esc_attr('settings_updated'),__('Settings saved.'),'updated');
        add_action('admin_notices', 'print_errors');
        return null;
    }
}

and last define print_errors something like:

function print_errors(){
    settings_errors( 'unique_identifyer' );
}

and if nothing happens then try adding include_once 'options-head.php'; in your page

Update
here is a plugin to test and see that it works just fine:

<?php
/*
Plugin Name: wpse62418
Plugin URI: http://en.bainternet.info
Description: answer to http://wordpress.stackexchange.com/questions/62418/verify-submitted-form-values-and-show-warning-messages-with-setting-api/62434
Version: 1.0
Author: Bainternet
Author URI: http://en.bainternet.info
*/


add_action('admin_init', 'settingsapi_init');
function settingsapi_init(){
    register_setting( 'settingsapi_optiongroupname', 'settingsapi_optionname','validation_callback');       //

    add_settings_section('plugin_main', 'Section 1', 'settingsapi_sectiondescription', 'settingsapi_pageslug');
    add_settings_field('plugin_text_string_a', 'Option A', 'settingsapi_setting_string_a', 'settingsapi_pageslug', 'plugin_main');
}

function settingsapi_sectiondescription() {
    echo '<p>This is a section description.</p>';
}
function settingsapi_setting_string_a() {
    $options = get_option('settingsapi_optionname');
    ?>
    <input type="hidden" name="settingsapi_optionname[submitted]" value="1" />
    <input id="plugin_text_string" name="settingsapi_optionname[preview][option_a]" size="40" type="text" value="<?php echo isset( $options['preview']['option_a']) ? $options['preview']['option_a'] : ''; ?>" />
    <?php
} 
// admin menu
add_action('admin_menu', 'plugin_admin_add_page');
function plugin_admin_add_page() {
    add_options_page('Custom Plugin Page', 'Demo Settings API Menu for Verification', 'manage_options', 'settingsapi_pageslug', 'settingsapi_adminpage');
}

function settingsapi_adminpage() {
    ?>
    <div class="wrap">
        <?php screen_icon(); ?> <h2>Demo Plugin for Validation Message with Settings API</h2>

        <?php
        $options = get_option('settingsapi_optionname');
        print_r($options);      // for debugging purpose
        ?>

        <form action="options.php" method="post">
            <?php 
            settings_fields('settingsapi_optiongroupname');
            do_settings_sections('settingsapi_pageslug'); 

            // after displaying the form content, set the invalid flag and the subbmited flag to false

            submit_button(); 
            ?>
        </form>

    </div>
        <?php 
            print_r($options);
        ?>  
    <?php
}

function validation_callback($input){
    add_settings_error('unique_identifyer',esc_attr('settings_updated'),__('Settings NOT saved.'),'error');
    add_action('admin_notices', 'print_errors');
    return $input;
}

function print_errors(){
    settings_errors( 'unique_identifyer' );
}