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

Problema com Fragments aula 4

Se alguém puder me dar uma mão aqui seria de grande ajuda... não costumava muito usar FragmentLayouts até pq não sabia muito bem como usá-los, estou seguindo a video aula e meu fragment está exibindo uma tela em branco ao invés da lista de provas, qual seria o problema?? segue o código.

provas_lista.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:id="@+id/provas_lista"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

provas.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
        android:id="@+id/provas_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</LinearLayout>

ListaProvasFragment.class

package br.com.alura.cadastro.fragments;

import android.app.Fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import java.util.Arrays;
import java.util.List;

import br.com.alura.cadastro.R;
import br.com.alura.cadastro.model.Prova;

/**
 * Created by bruno on 02/09/15.
 */
public class ListaProvasFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View layout = inflater.inflate(R.layout.provas_lista, container, false);

        ListView listaProvas = (ListView) layout.findViewById(R.id.provas_lista);

        Prova prova1 = new Prova("02/09/2015", "Como foder um país com a Dilma");
        prova1.setTopicos(Arrays.asList("Trazendo de volta a CPMF", "Não sabendo o que fazer", "Gastando à toa"));

        Prova prova2 = new Prova("03/09/2015", "Como fazer o dolar subir");
        prova2.setTopicos(Arrays.asList("fazendo merda", "mais merda", "embosteou tudo!"));

        List<Prova> provas = Arrays.asList(prova1, prova2);

        ArrayAdapter<Prova> adapter =
                new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, provas);
        listaProvas.setAdapter(adapter);

        return layout;
    }
}

Método onOptionsItemSelected do ListaAlunosActivity

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {
            case R.id.novo:
                Intent irParaFormulario = new Intent(this, FormularioActivity.class);
                startActivity(irParaFormulario);
                break;
            case R.id.enviar_alunos:
                new EnviaContatosTask(this).execute();
                return false;
            case R.id.receber_provas:
                Intent intentProvas = new Intent(this, ProvasActivity.class);
                startActivity(intentProvas);
                return false;
            default:
                break;
        }

        return super.onOptionsItemSelected(item);
    }

ProvasActivity.class

package br.com.alura.cadastro;

import android.app.FragmentTransaction;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.support.v4.app.FragmentActivity;

import br.com.alura.cadastro.fragments.ListaProvasFragment;

/**
 * Created by bruno on 02/09/15.
 */
public class ProvasActivity extends FragmentActivity {

    @Override
    public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
        super.onCreate(savedInstanceState, persistentState);
        setContentView(R.layout.provas);

        FragmentTransaction tx = getFragmentManager().beginTransaction();
        tx.replace(R.id.provas_view, new ListaProvasFragment());
        tx.commit();
    }
}
1 resposta
solução!

Galera consegui resolver, bobeira minha, mas era uma bobeira bem escondida, na classe ProvasActivity eu estava chamando o método onCreate() da Activity ao invés do onCreate() da FrameActivity... deixo aqui o código solucionado.

package br.com.alura.cadastro;


import android.os.Bundle;
import android.os.PersistableBundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;

import br.com.alura.cadastro.fragments.ListaProvasFragment;

/**
 * Created by bruno on 02/09/15.
 */
public class ProvasActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.provas);

        FragmentTransaction tx = getSupportFragmentManager().beginTransaction();
        tx.replace(R.id.provas_view, new ListaProvasFragment());
        tx.addToBackStack(null);
        tx.commit();
    }
}

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software