1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

android ArrayList Erro FATAL EXCEPTION: main java.lang.NullPointerException

Boa tarde,estou estudando programação android usando a ferramenta Android Studio e ao executar o código e selecionar a opção para listar os usuários cadastrados, depois de já haver cadastrado usuários aparecem os seguintes erros:

795-795/usuario.app.sistemadecadastro E/AndroidRuntime? FATAL EXCEPTION: main java.lang.NullPointerException

at usuario.app.sistemadecadastro.TelaListagemUsuarios.PreencheCampos(TelaListagemUsuarios.java:100)

at usuario.app.sistemadecadastro.TelaListagemUsuarios.CarregarTela(TelaListagemUsuarios.java:57)

at usuario.app.sistemadecadastro.TelaPrincipal$2.onClick(TelaPrincipal.java:44)

at android.view.View.performClick(View.java:3480)

at android.view.View$PerformClick.run(View.java:13983)

at android.os.Handler.handleCallback(Handler.java:605)

at android.os.Handler.dispatchMessage(Handler.java:92)

at android.os.Looper.loop(Looper.java:137)

at android.app.ActivityThread.main(ActivityThread.java:4340)

at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511)

at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)

at dalvik.system.NativeStart.main(Native Method)

Pela mensagem acho que pode ser algum erro no meu código na classe TelaListagemUsuarios, porém conferi com o código descrito na apostila que estou estudando e não vi diferença, se puderem me ajudar agradeço.

Segue o código-fonte:

package usuario.app.sistemadecadastro;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.app.AlertDialog;


public class MainActivity extends Activity {

    private ArrayList<Registro> aRegistro;
    TelaPrincipal tela_principal;
    TelaCadastroUsuario tela_cadastro;
    TelaListagemUsuarios tela_listagem;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        aRegistro = new ArrayList<Registro>();

        tela_principal = new TelaPrincipal(this);
        tela_cadastro = new TelaCadastroUsuario(this, tela_principal);
        tela_listagem = new TelaListagemUsuarios(this, tela_principal);
        tela_principal.setTelaCadastro(tela_cadastro);
        tela_principal.setTelaListagem(tela_listagem);

        tela_principal.CarregarTela();
    }

    public ArrayList<Registro> getRegistros(){

        return aRegistro;
    }

    public void ExibirMensagem(String msg){
        AlertDialog.Builder d = new AlertDialog.Builder(MainActivity.this);
        d.setTitle("Aviso");
        d.setMessage(msg);
        d.setNeutralButton("OK", null);
        d.show();
    }
}
package usuario.app.sistemadecadastro;

/**
 * Created by jhonata on 16/06/2016.
 */
public class Registro {

    private String nome;
    private String endereco;
    private String telefone;

    public Registro(String nome, String endereco, String telefone)
    {
        this.nome = nome;
        this.endereco = endereco;
        this.telefone = telefone;
    }

    public String getNome() {return nome;}
    public String getEndereco() {return endereco;}
    public String getTelefone() {return telefone;}
}
package usuario.app.sistemadecadastro;

/**
 * Created by jhonata on 16/06/2016.
 */

import android.app.*;
import android.content.DialogInterface;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class TelaCadastroUsuario {

    MainActivity act;
    EditText ednome, edendereco, edtelefone;
    Button btcadastrar, btcancelar_cadastro;
    TelaPrincipal tela_principal;


    public TelaCadastroUsuario(MainActivity act, TelaPrincipal tela_principal)
    {
        this.act = act;
        this.tela_principal = tela_principal;
    }

    public void CarregarTela()
    {
        act.setContentView(R.layout.cadastro_de_usuario);
        ednome = (EditText) act.findViewById(R.id.ednome);
        edtelefone = (EditText) act.findViewById(R.id.edtelefone);
        edendereco = (EditText) act.findViewById(R.id.edendereco);
        btcadastrar = (Button) act.findViewById(R.id.btcadastrar);
        btcancelar_cadastro = (Button) act.findViewById(R.id.btcancelar_cadastro);

        btcadastrar.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View view){
                AlertDialog.Builder dialogo = new AlertDialog.Builder(act);
                dialogo.setTitle("Aviso");
                dialogo.setMessage("Cadastrar usuário ?");
                dialogo.setNegativeButton("Não", null);
                dialogo.setPositiveButton("Sim", new DialogInterface.OnClickListener(){

                    @Override
                    public void onClick(DialogInterface dialog, int wich){

                        String nome = ednome.getText().toString();
                        String telefone = edtelefone.getText().toString();
                        String endereco = edendereco.getText().toString();
                        act.getRegistros().add(new Registro(nome, telefone, endereco));
                        act.ExibirMensagem("Cadastro efetuado com sucesso.");
                        tela_principal.CarregarTela();
                    }
                });
                dialogo.show();
            }
        });

        btcancelar_cadastro.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View view){
                AlertDialog.Builder dialogo = new AlertDialog.Builder(act);
                dialogo.setTitle("Aviso");
                dialogo.setMessage("Sair do Cadastro ?");
                dialogo.setNegativeButton("Não", null);
                dialogo.setPositiveButton("Sim", new DialogInterface.OnClickListener(){

                    @Override
                    public void onClick(DialogInterface dialog, int wich){

                        tela_principal.CarregarTela();

                    }
                });
                dialogo.show();
            }
        });
    }
}
package usuario.app.sistemadecadastro;

/**
 * Created by jhonata on 16/06/2016.
 */

import android.app.AlertDialog;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class TelaListagemUsuarios {


    MainActivity act;
    TelaPrincipal tela_principal;

    Button btanterior, btproximo, btfechar;

    TextView txtnome, txttelefone, txtendereco, txtstatus;

    int index;

    public TelaListagemUsuarios(MainActivity act, TelaPrincipal tela_principal){

        this.act = act;
        this.tela_principal = tela_principal;
        index = 0;
    }

    public void CarregarTela()
    {
        //Antes de carregar a tela, verifica se existem registros inseridos

        if (act.getRegistros().size() == 0)
        {
            (new AlertDialog.Builder(act))
                    .setTitle("Aviso")
                    .setMessage("Não existe nenhum registro cadastrado.")
                    .setNeutralButton("OK", null)
                    .show();

            return;
        }

        act.setContentView(R.layout.listagem_usuarios_cadastrados);
        btanterior = (Button) act.findViewById(R.id.btanterior);
        btproximo = (Button) act.findViewById(R.id.btproximo);
        btfechar = (Button) act.findViewById(R.id.btfechar);

        txtnome = (TextView) act.findViewById(R.id.textnome);
        txtendereco = (TextView) act.findViewById(R.id.txtendereco);
        txttelefone = (TextView) act.findViewById(R.id.txttelefone);
        txtstatus = (TextView) act.findViewById(R.id.txtstatus);

        PreencheCampos(index);
        AtualizaStatus(index);

        btanterior.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View view){

                if (index > 0)
                {
                    index -- ;
                    PreencheCampos(index);
                    AtualizaStatus(index);
                }
            }
        });
        btproximo.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View view){

                if (index < act.getRegistros().size() - 1)
                {
                    index ++;
                    PreencheCampos(index);
                    AtualizaStatus(index);
                }
            }
        });
        btfechar.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View view){

                tela_principal.CarregarTela();
            }
        });

    }

    private void PreencheCampos(int idx)
    {

        txtnome.setText(act.getRegistros().get(idx).getNome());
        txttelefone.setText(act.getRegistros().get(idx).getTelefone());
        txtendereco.setText(act.getRegistros().get(idx).getEndereco());
    }

    private void AtualizaStatus(int idx)
    {
        int total = act.getRegistros().size();
        txtstatus.setText("Registros :" + (idx + 1) + "/" + total);
    }
}
package usuario.app.sistemadecadastro;

/**
 * Created by jhonata on 16/06/2016.
 */
import android.view.View;
import android.widget.Button;

public class TelaPrincipal {

    MainActivity act;

    Button btcadastrar_usuario;
    Button bt_listar_usuarios_cadastrados;
    TelaCadastroUsuario tela_cadastro;
    TelaListagemUsuarios tela_listagem;

    public TelaPrincipal(MainActivity act){

        this.act = act;

    }

    public void CarregarTela()
    {
        act.setContentView(R.layout.tela_principal);
        btcadastrar_usuario = (Button) act.findViewById(R.id.btcadastrar_usuario);
        bt_listar_usuarios_cadastrados = (Button) act.findViewById(R.id.bt_listar_usuarios_cadastrados);

        btcadastrar_usuario.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View view){

                tela_cadastro.CarregarTela();
            }
        });

        bt_listar_usuarios_cadastrados.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View view){

                tela_listagem.CarregarTela();
            }
        });
    }

    public void setTelaCadastro(TelaCadastroUsuario tela_cadastro)
    {
        this.tela_cadastro = tela_cadastro;
    }

    public void setTelaListagem(TelaListagemUsuarios tela_listagem)
    {
        this.tela_listagem = tela_listagem;
    }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <LinearLayout
        android:id="@+id/layouttopo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#fdb46d"
        android:orientation="horizontal" >
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/icone_programa" />
        <LinearLayout
            android:id="@+id/layout_titulo_programa"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:gravity="center_vertical"
            android:orientation="vertical" >

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:gravity="center"
                android:text="Cadastro de"
                android:textAppearance="?android:attr/textAppearanceLarge" />

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text="Usuário"
                android:textAppearance="?android:attr/textAppearanceLarge" />

        </LinearLayout>

    </LinearLayout>
    <TextView
        android:id="@+id/textnome"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="10dp"
        android:text="Preencha os dados abaixo :"
        android:textAppearance="?android:attr/textAppearanceMedium" />
    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="15dp"
        android:text="Nome :"
        android:textAppearance="?android:attr/textAppearanceMedium" />
    <EditText
        android:id="@+id/ednome"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
        <requestFocus/>
    </EditText>

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="10dp"
        android:text="Endereço :"
        android:textAppearance="?android:attr/textAppearanceMedium" />
    <EditText
        android:id="@+id/edendereco"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="10dp"
        android:text="Telefone :"
        android:textAppearance="?android:attr/textAppearanceMedium" />
    <EditText
        android:id="@+id/edtelefone"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <LinearLayout
        android:id="@+id/layout_botoes_cadastro"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center" >

        <Button
            android:id="@+id/btcadastrar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Cadastrar" />

        <Button
            android:id="@+id/btcancelar_cadastro"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Cancelar" />

    </LinearLayout>

</LinearLayout>
<?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">

    <LinearLayout
        android:id="@+id/layouttopo_luc"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#fdb46d"
        android:orientation="horizontal" >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/icone_programa"/>

        <LinearLayout
            android:id="@+id/layou_titulo_programa_luc"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:gravity="center_vertical"
            android:orientation="vertical" >

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:gravity="center"
                android:text="Listagem de"
                android:textAppearance="?android:attr/textAppearanceLarge"/>

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:gravity="center"
                android:text="Usuários"
                android:textAppearance="?android:attr/textAppearanceLarge"/>

        </LinearLayout>

    </LinearLayout>

    <LinearLayout
        android:id="@+id/layout_status_luc"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="right"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/txtstatus"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingRight="10dp"
            android:text="Registros 1/10"
            android:textAppearance="?android:attr/textAppearanceMedium"/>

    </LinearLayout>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Nome :"
        android:textAppearance="?android:attr/textAppearanceMedium"/>

    <TextView
        android:id="@+id/txtnome"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="5dp"
        android:text="[NOME]"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#fb7600" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="15dp"
        android:text="Endereço :"
        android:textAppearance="?android:attr/textAppearanceMedium"/>
    <TextView
        android:id="@+id/txtendereco"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="5dp"
        android:text="[ENDEREÇO]"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#fb7600"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="15dp"
        android:text="Telefone :"
        android:textAppearance="?android:attr/textAppearanceMedium"/>
    <TextView
        android:id="@+id/txttelefone"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="5dp"
        android:text="[TELEFONE]"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#fb7600"/>

    <LinearLayout
        android:id="@+id/layout_botoes_luc"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal"
        android:paddingTop="10dp">

        <Button
            android:id="@+id/btanterior"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Anterior" />
        <Button
            android:id="@+id/btproximo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Próximo" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/Layout_botao_fechar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="vertical" >

        <Button
            android:id="@+id/btfechar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Fechar" />

    </LinearLayout>

</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >
    <LinearLayout
        android:id="@+id/layouttop_tp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#fdb46d"
        android:orientation="horizontal" >
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/icone_programa" />
        <LinearLayout
            android:id="@+id/layout_titulo_programa_tp"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:orientation="vertical" >

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:gravity="center"
                android:text="Sistema de"
                android:textAppearance="?android:attr/textAppearanceLarge" />
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text="Cadastro"
                android:textAppearance="?android:attr/textAppearanceLarge" />

        </LinearLayout>

    </LinearLayout>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingBottom="15dp"
        android:paddingTop="15dp"
        android:text="Bem vindo ao Sistema de Cadastro. Esse é um pequeno Software
        de cadastro de usuários. Escolha uma das opções abaixo :"
        android:textSize="18sp" />
    <Button
        android:id="@+id/btcadastrar_usuario"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Cadastrar Usuário" />
    <Button
        android:id="@+id/bt_listar_usuarios_cadastrados"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Listar Usuários Cadastrados" />

</LinearLayout>
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags arraylist ou faça a sua própria pergunta.