Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Lista com dados retorna 0 null - retorno

Quando insiro regisstro por exemplo os dados nome endereço ... aparece dados inseridos com sucesso ao visualizar dados na lista por exemplo fiz 5 inserções aparece nas 5: 0-null . E na classe lista no código listaCadastro.setAdapter(adapter); fica sublinhado de amarelo e logo abaixo no código on clik list botao novo o mesmo fica sublinhado tbm ao dar run no programa tudo funciona normalmente somente a lista ao exibir mostra erro de exibição nao retornando o digitado.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
<ListView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/lista">
</ListView>

    <Button
        android:layout_width="56dp"
        android:layout_height="56dp"
        android:text="+"
        android:textColor="#ffffff"
        android:textSize="40dp"
        android:elevation="6dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="16dp"
        android:layout_marginRight="16dp"
        android:background="@drawable/fundo"
        android:stateListAnimator="@null"
        android:id="@+id/novo"/>

</RelativeLayout>
package com.example.nicolle.cupfinal;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;

import com.example.nicolle.cupfinal.model.Cadastro;
import com.example.nicolle.cupfinal.model.CadastroDAO;


import java.util.List;


public class Lista extends AppCompatActivity {



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

        CadastroDAO dao = new CadastroDAO(this);
        List<Cadastro> cadastros = dao.buscaCadastro();

        ListView listaCadastro =(ListView) findViewById(R.id.lista);
        ArrayAdapter<Cadastro> adapter =new ArrayAdapter<Cadastro>(this , android.R.layout.simple_list_item_1,cadastros);
        listaCadastro.setAdapter(adapter);


        Button novo = (Button) findViewById(R.id.novo);

        novo.setOnClickListener(new View.OnClickListener() {

                public void onClick(View v) {
                    Intent intent = new Intent(Lista.this, MainActivity.class);
                    startActivity(intent);

                }
            });

        }


 }
package com.example.nicolle.cupfinal;


import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;


import com.example.nicolle.cupfinal.model.Cadastro;
import com.example.nicolle.cupfinal.model.CadastroDAO;

public class MainActivity extends AppCompatActivity {

    private FormHelper helper;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        helper = new FormHelper (this);
    }

     public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.itemoutro, menu);

        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.botaodese:
                Cadastro cadastro = helper.pegaCadastro();
                CadastroDAO dao = new CadastroDAO(this);
                dao.insere(cadastro);
                dao.close();

                Toast.makeText(MainActivity.this, "Bem Vindo  " +cadastro.getNome(), Toast.LENGTH_SHORT).show();

                finish();
                break;
        }

        return super.onOptionsItemSelected(item);
    }
}
package com.example.nicolle.cupfinal.model;

import com.example.nicolle.cupfinal.MainActivity;

/**
 * Created by nicolle on 03/12/2016.
 */
public class Cadastro {

    private Long id;
    private String nome;
    private String endereco;
    private String qtd;
    private String massa;
    private String cobertura;
    private String recheio;
    private Double nota;



    public Long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getQtd() {
        return qtd;
    }

    public void setQtd(String qtd) {
        this.qtd = qtd;
    }

    public String getEndereco() {
        return endereco;
    }

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    public String getMassa() {
        return massa;
    }

    public void setMassa(String massa) {
        this.massa = massa;
    }

    public String getCobertura() {
        return cobertura;
    }

    public void setCobertura(String cobertura) {
        this.cobertura = cobertura;
    }

    public String getRecheio() {
        return recheio;
    }

    public void setRecheio(String recheio) {
        this.recheio = recheio;
    }

    public Double getNota() {
        return nota;
    }

    public void setNota(Double nota) {
        this.nota = nota;
    }

    @Override
    public String toString() {
        return getId() + " - " + getNome();
    }
}
package com.example.nicolle.cupfinal.model;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import com.example.nicolle.cupfinal.MainActivity;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by nicolle on 03/12/2016.
 */
public class CadastroDAO extends SQLiteOpenHelper{



    public CadastroDAO(Context context) {
        super(context ,"Cadastro", null, 1);
    }


    public void onCreate(SQLiteDatabase db) {
        String sql = "CREATE TABLE Cadastro (id INTEGER PRIMARY KEY , nome TEXT NOT NULL , endereco TEXT , qtd TEX , massa TEXT, cobertura TEXT, recheio TEXT, nota REAL);";
         db.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        String sql ="DROP TABLE IF EXISTS Cadastro";
        db.execSQL(sql);
        onCreate(db);
    }

    public void insere (Cadastro cadastro){

     SQLiteDatabase  db  = getWritableDatabase();

        ContentValues dados = new ContentValues();

        dados.put("nome", cadastro.getNome());
        dados.put("endereco", cadastro.getEndereco());
        dados.put("qtd", cadastro.getQtd());
        dados.put("massa", cadastro.getMassa());
        dados.put("cobertura", cadastro.getCobertura());
        dados.put("nota", cadastro.getNota());

        db.insert("Cadastro",null,dados);

    }


    public List<Cadastro> buscaCadastro() {

        String sql = "SELECT * FROM Cadastro;";
        SQLiteDatabase db = getReadableDatabase();
        Cursor c = db.rawQuery(sql ,null );

        List<Cadastro> cadastro = new ArrayList<Cadastro>();

        while (c.moveToNext()){
            Cadastro cadastros = new Cadastro();
            cadastros.setId(c.getLong(c.getColumnIndex("id")));
            cadastros.setEndereco(c.getString(c.getColumnIndex("nome")));
            cadastros.setQtd(c.getString(c.getColumnIndex("qtd")));
            cadastros.setMassa(c.getString(c.getColumnIndex("massa")));
            cadastros.setCobertura(c.getString(c.getColumnIndex("cobertura")));
            cadastros.setRecheio(c.getString(c.getColumnIndex("recheio")));
            cadastros.setNota(c.getDouble(c.getColumnIndex("nota")));

            cadastro.add(cadastros);
        }

        c.close();
        return cadastro;
    }
}
4 respostas

Oi Nicolle, tudo bem ?

Precisava dar uma olhadinha no seu helper, para ver o que tá acontecendo, consegue disponibilizar ele aqui para gente ?

Abraços

Boa tarde matheus segue o helper

package com.example.nicolle.cupfinal;

import android.widget.EditText;
import android.widget.RatingBar;

import com.example.nicolle.cupfinal.model.Cadastro;

public class FormHelper {

    private  EditText campoNome;
    private  EditText campoEndereco;
    private  EditText campoQtde;
    private EditText campoMassa;
    private EditText campoCobertura;
    private EditText campoRecheio;
    private RatingBar campoNota;


    public FormHelper(MainActivity activity) {
        campoNome = (EditText) activity.findViewById(R.id.form_nome);
        campoEndereco = (EditText) activity.findViewById(R.id.form_endereco);
        campoQtde = (EditText) activity.findViewById(R.id.form_qtd);
        campoMassa = (EditText) activity.findViewById(R.id.form_massa);
        campoCobertura = (EditText) activity.findViewById(R.id.form_cobertura);
        campoRecheio = (EditText) activity.findViewById(R.id.form_recheio);
        campoNota = (RatingBar) activity.findViewById(R.id.form_nota);

  }

    public Cadastro pegaCadastro() {
        Cadastro cadastro = new Cadastro();
        cadastro.setNome(campoNome.getText().toString());
        cadastro.setEndereco(campoEndereco.getText().toString());
        cadastro.setQtd(campoQtde.getText().toString());
        cadastro.setMassa(campoMassa.getText().toString());
        cadastro.setCobertura(campoCobertura.getText().toString());
        cadastro.setRecheio(campoRecheio.getText().toString());
        cadastro.setNota(Double.valueOf(campoNota.getProgress()));
        return cadastro;

    }

}
solução!

Nicolle,

Dei uma olhadinha um pouco melhor, e achei um pequeno erro de digitação, dá uma olhada no seu onCreate do banco de dados.

    public void onCreate(SQLiteDatabase db) {
        String sql = "CREATE TABLE Cadastro (id INTEGER PRIMARY KEY , nome TEXT NOT NULL , endereco TEXT , qtd TEX , massa TEXT, cobertura TEXT, recheio TEXT, nota REAL);";
         db.execSQL(sql);
    }

A qtd não tem tipo válido, nisso acredito que possa estar tendo problemas no momento que em que está enviando as informações para o banco.

Outra coisa que você pode fazer, só para deixar com um pouco mais de coesão o codigo é na hora em que busca as informações do banco, como o rawQuery recebe o sql e os o parâmetros que no seu caso é nulo, deixa que ele feche o sql para você, ou seja coloque o ";" no final da instrução.

Faz essas mudanças, desinstala o aplicativo e o instale novamente e fala para gente o que ocorreu.

Abraço

Deu certo , o nome estava errado e o banco resolveu o problema . Outra dúvida: Por exemplo faço cadastro ele não aparece na lista, tenho que sair do aplicativo e entrar de novo para aparecer na lista. Aperto no botão + do cadastro faço o cadastro e não aparece na lista somente quando saio do aplicativo e entro de novo que aparece como faço para aparecer sem a necessidade de ficar saindo?