Eu consegui fazer, mas não sei se é o recomendado, e ainda não consegui preencher o spinner com o json recebido. Eu fiz o seguinte:
No Fragment, eu criei o spinner e chamei a AsyncTask passando o context e a view.
spinner = (Spinner) view.findViewById(R.id.intro_spin_selecionaEstado);
new BuscaEstadosTASK(getContext(), view).execute();
Na AsyncTask , método onPostExecute, eu tive que criar novamente o spinner e consegui fazer o spinner receber um array de testes, passado através de um array adapter:
String[] estados= {"Selecione seu estado...", "São Paulo", "Minas Gerais", "Rio de Janeiro"};
ArrayAdapter<String> adapterOpcoes = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_item, estados);
Spinner spinner = (Spinner) view.findViewById(R.id.intro_spin_selecionaEstado);
spinner.setAdapter(adapterOpcoes);
Ele chegou a preencher o spinner corretamente, mas meu problema é que eu recebo um JSON do webservice, e precisava preencher o spinner com esse json:
{"estados":[{"id":"3","nome":"São Paulo"},{"id":"2","nome":"Minas Gerais"},{"id":"1","nome":"Rio de Janeiro"}]}
Como fazer para colocar esse json no spinner? E mais uma coisa, o acento que vem do json dá erro. Eu tenho que tratar isso no PHP ou no Android?
PS: Muito obrigado pela ajuda.