Android, como reiniciar / atualizar um fragmento de FragmentActivty?

Na minha FragmentActivity eu tenho um fragmento. Este fragmento carrega dados do servidor. Eu quero que o usuário clica no botão de atualização, então eu chamo um método em fragmento e faço o processo de atualização.

Eu criei uma interface no FragmentActivity e defini sua variável quando o usuário clica no botão de atualização. O código é assim:

public class MainScreen extends FragmentActivity {
    public interface OnRefreshSelected {
        public void refreshFragment(boolean flag);
    }

    private OnRefreshSelected onRefreshSelected;

    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            Log.i(TAG, "Try to create MainScreen...");

            setContentView(R.layout.activity_main);

        onRefreshSelected = (OnRefreshSelected) MainScreen.this;
    }

     @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.activity_main, menu);
            return true;
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
                    case R.id.menu_refresh:
                        onRefreshSelected.refreshFragment(true);
                        return true;
                    default:
                        return super.onOptionsItemSelected(item);
        }
    }
}

E na classe Fragment eu implementei essa interface:

public class CategoryFragment extends Fragment implements OnRefreshSelected {
    @Override
    public void refreshFragment(boolean flag) {
        Log.i(TAG, "refresh requested. Try to reload data for this fragment...");

        getData();
    }
} 

Quando eu corro, o aplicativo trava e o logcat mostra esta mensagem:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.astro.recipe.activities/com.astro.recipe.activities.MainScreen}: java.lang.ClassCastException: com.astro.recipe.activities.MainScreen

e aponta para esta linha:

onRefreshSelected = (OnRefreshSelected) MainScreen.this;

Qual é a melhor maneira de ter acesso a um método de fragmento de seu host? Qualquer sugestão será apreciada. obrigado

questionAnswers(2)

yourAnswerToTheQuestion