2
respostas

Recuperar dados para do SQLite para uma List na fragment

Olá, eu queria saber o modo que faz pra recuperar os dados do SQLite para uma lista que está dentro de uma fragment. Quando eu coloco o código abaixo dá um erro requerimento de uma list

    GradeDB db = new GradeDB(getActivity());
        List<Materia> materia = db.buscarMaterias();
2 respostas

Luiz,

pode colocar o errro aqui? Também coloque como está o seu método buscarMateriais()

Então o código da fragment está assim:

public class FragmentGrade extends Fragment {





    private MyListAdapter listAdapter;
    private ExpandableListView myList;
    private ArrayList<Materia> materiaList = new ArrayList<Materia>();
    private View fragmentGrade;
    private GradeBO gradeBO;




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






        ArrayList<InformacoesMateria> infoMateriaList = new         ArrayList<InformacoesMateria>();
        GradeDB db = new GradeDB(getActivity());
        List<Materia> materia = db.buscarMaterias();


    }

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

        fragmentGrade = inflater.inflate(R.layout.fragment_grade, container, false);

        myList = (ExpandableListView) fragmentGrade.findViewById(R.id.expandableList);
        // create the adapter by passing your ArrayList data
        listAdapter = new MyListAdapter(getActivity(), materiaList);
        // attach the adapter to the list
        myList.setAdapter(listAdapter);
        // display the list

        return fragmentGrade;
    }


}

e o buscar materias está assim:

public void buscaMateria(){
        List<Materia> materias = new ArrayList<Materia>();
        SQLiteDatabase db = getReadableDatabase();

        Cursor c = db.rawQuery(" SELECT * FROM GRADE_DB;", null);

        while(c.moveToNext()) {
            Materia materias= new Materia();


            materia.setNome(c.getString(c.getColumnIndex("MATERIA")));



            materias.add(materia);
        }
        c.close();


    }

Eu acho que está tudo de acordo com as video-aulas e o problema está por a tela ser uma fragment e o getActivity() não está funcionando. Não dá erro só não acha o método de buscarMateria()

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