2
respostas

Erro com o adapter , a lista não é enviada

//TEXTO DO ERRO Method invocation 'listadeContatos.setAdapter(adapter)' may produce 'java.lang.NullPointerException' less... super.onCreate(savedInstanceState); listadeContatos.setAdapter(adapter);

package com.example.ale.agenda;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;
import android.widget.ListView;

//extende um activity(Tela)

public class ListaAlunosActivity extends AppCompatActivity {

    @Override//sobreescreve o metodo da AppCompatActivity
                    //O android chama o OnCreate para "criar" a tela
    protected void onCreate(Bundle savedInstanceState) {
        //chama o a on Create que já existia na classe super.
        super.onCreate(savedInstanceState);
        //O setContentView é de onde vem o conteúdo da tela
        setContentView(R.layout.activity_lista_alunos);//O R.layout.activity_lista_alunos é um endereço no Android para acessar um arquivo em determinada pasta.

        //Array Simples
        String [] contatos= {"Alessandra","César", "tom Jones", "Rod William", "Florência"};

                                //converte a view para listview
        ListView listadeContatos = (ListView) findViewById(R.id.lista_contatos);

        //converte os contatos String para View
       //variavel do tipo Adapter
                                         //contexto,layout                        item a converter
        ArrayAdapter<String> adapter = new ArrayAdapter <String> (this, android.R.layout.simple_list_item_1, contatos);
        listadeContatos.setAdapter(adapter);

    }
}
2 respostas

Olá Jonathan,

O problema deve estar ocorrendo pois o trecho abaixo não esta instanciando corretamente o ListView:

ListView listadeContatos = (ListView) findViewById(R.id.lista_contatos);

Nesse caso aparenta que a variavel listadeContatos está nula e quando você tentar utilizar o metodo setAdapter(adapter) ocorrerá o erro de nullpointerexception.

Para resolver voce precisa investigar o motivo de o metodo findViewById nao estar localizando corretamente a sua ListView.

Tentar verificar se seu XML activity_lista_alunos.xml possui uma lista com o id lista_contatos.

o XML parece correto contudo o erro continua

insira seu código aqui
<?xml version="1.0" encoding="utf-8"?>
<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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.ale.agenda.ListaAlunosActivity">

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

</LinearLayout>