Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Java.lang.IllegalArgumentException ao executar a aplicação no tablet

Ao utilizar o tablet na horizontal tenho o seguinte erro:

10-09 14:36:45.981: E/FragmentManager(1390): No view found for id 0x7f060046 (br.com.caelum.listadealunos:id/provas_view) for fragment DetalhesProvaFragment{40cd9e78 #2 id=0x7f060046}
10-09 14:36:45.981: E/FragmentManager(1390): Activity state:
10-09 14:36:46.370: E/AndroidRuntime(1390): FATAL EXCEPTION: main
10-09 14:36:46.370: E/AndroidRuntime(1390): java.lang.IllegalArgumentException: No view found for id 0x7f060046 (br.com.caelum.listadealunos:id/provas_view) for fragment DetalhesProvaFragment{40cd9e78 #2 id=0x7f060046}

Ao meu ver ele não encontra a view provas_view, mais esta tudo de acordo com os exercícios se alguém poder me ajudar eu agraço.

Obs: na vertical tudo funciona normalmente.

1 resposta
solução!

Já resolvi o erro esta no exercício o código deve ficar da seguinte forma:

provas_view só existe no Smartphone, tablet utiliza o provas_detalhe, a condição if(isTablet()) deve tratar isso diferente do exercício que só trata o addToBackStack()

public void selecionaProva(Prova prova) {

        Bundle argumentos = new Bundle();
        argumentos.putSerializable("prova", prova);

        DetalhesProvaFragment detalhesProvaFragment = new DetalhesProvaFragment();
        detalhesProvaFragment.setArguments(argumentos);

        FragmentTransaction transaction = getSupportFragmentManager()
                .beginTransaction();

        if (isTablet()) {

            transaction.replace(R.id.provas_detalhe, detalhesProvaFragment,
                    DetalhesProvaFragment.class.getCanonicalName());

        } else {
            transaction.replace(R.id.provas_view, detalhesProvaFragment,
                    DetalhesProvaFragment.class.getCanonicalName());

            transaction.addToBackStack(null);

        }

        transaction.commit();
    }