Saltar para conteúdo


Foto
- - - - -

Como iniciar um classe recuperando dados de SQLite


  • Por favor inicie sessão para responder
1 resposta a este tópico

#1 antonio_flavio_sousa

antonio_flavio_sousa

    Novato

  • Membros
  • Pip
  • 3 mensagens
  • Notebook

Mensagem publicada 29 January 2017 - 23:09

Então gente estou fazendo um aplicação, criei uma classe aluno e declarei como um vetor. tenho um banco de dados com nomes de alguns alunos e preciso passar esse nomes para o array da classe.


        Aluno[] alunos = BancoDeDados.obterAlunos();

OBS** Fiz até um método obterAlunos, mas nesse método não existe nada pois eu não sei o que fazer, como retornar: return ArrayList ? ou return String.

Como fazer isso ?

CODIGO INTEIRO: 

public class MainActivity extends AppCompatActivity {

    private SQLiteDatabase bancoDeDados;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        bancoDeDados = openOrCreateDatabase("alunos", MODE_PRIVATE, null);
        bancoDeDados.execSQL("CREATE TABLE IF NOT EXISTS alunos(id INTEGER PRIMARY KEY AUTOINCREMENT, nome VARCHAR, presenca INTEGER (4)");


        ListView listaPresenca = (ListView) findViewById(R.id.listCheck);

        Aluno[] alunos = BancoDeDados.obterAlunos();

        AlunoAdapter adapter = new AlunoAdapter();
        adapter.addAll(alunos);

        listaPresenca.setAdapter(adapter);


        //Botão Para addicionar novos ALUNOS
        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(final View view) {
                AlertDialog.Builder mensagem = new AlertDialog.Builder(MainActivity.this);
                mensagem.setTitle("Novo Aluno(New Student)");
                mensagem.setMessage("Para adicionar um novo aluno, click ok");


                // DECLARACAO DO EDITTEXT
                final EditText input = new EditText(MainActivity.this);
                mensagem.setView(input);
                mensagem.setNeutralButton("OK", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {

                        if (input.getText().toString().isEmpty()) {
                            Snackbar.make(view, "ATENÇÃO!!! TEXTO EM BRANCO", Snackbar.LENGTH_LONG)
                                    .setAction("Action", null).show();
                        } else {
                            Snackbar.make(view, input.getText().toString().trim(), Snackbar.LENGTH_LONG)
                                    .setAction("Action", null).show();
                            InserirAluno(input.getText().toString());
                        }
                    }
                });

                mensagem.show();
                // FORÇA O TECLADO APARECER AO ABRIR O ALERT
                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

            }
        });



    }

    public void InserirAluno(String nomeAluno) {
        bancoDeDados.execSQL("INSERT INTO alunos(nome, presenca) VALUES ('"+ nomeAluno +"', 0) ");
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_resultado) {

                return true;
        }

        return super.onOptionsItemSelected(item);
    }

    /**
     * Classe AlunoAdapter
     */
    private class AlunoAdapter extends ArrayAdapter<Aluno> {

        public AlunoAdapter(Context context) {
            super(context, android.R.layout.simple_list_item_1);
        }

        @NonNull
        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
            Aluno aluno = getItem(position);

            if (convertView == null) {
                convertView = new CheckBox(getContext());
            }

            final CheckBox checkBox = (CheckBox) convertView;

            checkBox.setText(aluno.getNome());

            checkBox.setChecked(false);

            checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    // salva no banco de dados se o aluno está presente ou não
                    String test = checkBox.getText().toString();
                    Log.i("Testing", test);
                }
            });

            return checkBox;
        }
    }























}


  • AustAdmilk e Randjem gosta disto

#2 xanex

xanex

    Membro

  • Membros
  • PipPip
  • 199 mensagens
  • LocalizaçãoLisboa
  • Nexus 10, Nexus 5x, Nexus 6p

Mensagem publicada 15 February 2017 - 10:16

convém estruturares melhor a coisa

se quiseres uma biblioteca fixe para te tratar da base de dados aconselho a dares uma vista de olhos nesta

https://realm.io/

 

se quiseres criar a tua própria base de dados, podes espreitar este git meu, o link vai directamente para o package onde tenho o provider

https://github.com/x...ojhunt/provider


  • pedronveloso gosta disto