Nao esta executando, e ao verificar o locat da erro na linha:
listaAluno.setAdapter(adapter);
Nao esta executando, e ao verificar o locat da erro na linha:
listaAluno.setAdapter(adapter);
Qual é a mensagem completa que aparece no logCat?
04-22 09:28:27.870: E/AndroidRuntime(2738): FATAL EXCEPTION: main
04-22 09:28:27.870: E/AndroidRuntime(2738): Process: br.com.caelum.cadastro, PID: 2738
04-22 09:28:27.870: E/AndroidRuntime(2738): java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.caelum.cadastro/br.com.caelum.cadastro.ListaAlunos}: java.lang.NullPointerException
04-22 09:28:27.870: E/AndroidRuntime(2738): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
04-22 09:28:27.870: E/AndroidRuntime(2738): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
04-22 09:28:27.870: E/AndroidRuntime(2738): at android.app.ActivityThread.access$800(ActivityThread.java:135)
04-22 09:28:27.870: E/AndroidRuntime(2738): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
04-22 09:28:27.870: E/AndroidRuntime(2738): at android.os.Handler.dispatchMessage(Handler.java:102)
04-22 09:28:27.870: E/AndroidRuntime(2738): at android.os.Looper.loop(Looper.java:136)
04-22 09:28:27.870: E/AndroidRuntime(2738): at android.app.ActivityThread.main(ActivityThread.java:5017)
04-22 09:28:27.870: E/AndroidRuntime(2738): at java.lang.reflect.Method.invokeNative(Native Method)
04-22 09:28:27.870: E/AndroidRuntime(2738): at java.lang.reflect.Method.invoke(Method.java:515)
04-22 09:28:27.870: E/AndroidRuntime(2738): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
04-22 09:28:27.870: E/AndroidRuntime(2738): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
04-22 09:28:27.870: E/AndroidRuntime(2738): at dalvik.system.NativeStart.main(Native Method)
04-22 09:28:27.870: E/AndroidRuntime(2738): Caused by: java.lang.NullPointerException
04-22 09:28:27.870: E/AndroidRuntime(2738): at br.com.caelum.cadastro.ListaAlunos.onCreate(ListaAlunos.java:38)
04-22 09:28:27.870: E/AndroidRuntime(2738): at android.app.Activity.performCreate(Activity.java:5231)
04-22 09:28:27.870: E/AndroidRuntime(2738): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
04-22 09:28:27.870: E/AndroidRuntime(2738): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
04-22 09:28:27.870: E/AndroidRuntime(2738): ... 11 more
Leonardo, preciso da sua listagem_alunos.xml, ListaAlunosActivity. Cola o código por favor e tenta usar o formatador de código aqui do fórum(backticks).
Ok, segue... obs: estou usando um eclipse com ADT recente, que inclusive alterou um pouco a forma de criar os arquivos XML, usando o conceito de fragmento.
arquivo: fragment_listagem_alunos.xml ..............
<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" >
<ListView
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:id="@+id/lista" />
</LinearLayout>
.....................................................
arquivo: ListaAlunos.java
package br.com.caelum.cadastro;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import android.os.Build;
public class ListaAlunos extends ActionBarActivity {
private ListView lista;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listagem_alunos);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
String[] alunos = {"Anderson", "Filipe", "Guilherme"};
int layout = android.R.layout.simple_list_item_1;
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, layout, alunos);
ListView lista = (ListView) findViewById(R.id.lista);
lista.setAdapter(adapter);
lista.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> adapter, View view, int posicao, long id){
Toast.makeText(ListaAlunos.this, "Posição selecionada "+posicao, Toast.LENGTH_LONG).show();
}
});
lista.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapter, View view, int posicao, long id) {
Toast.makeText(ListaAlunos.this, "Item da Posição é "+ adapter.getItemAtPosition(posicao), Toast.LENGTH_LONG).show();
return true;
}
});
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_listagem_alunos,
container, false);
return rootView;
}
}
}
Oi Leonardo,
Não use fragments nesse exercício, o assunto é abordado em outra seção dos cursos de Android.
Como está o seu layout da activity? O problema é que você está fazendo findViewById
(que busca um elemento no layout da activity), mas aparentemente você colocou a listagem de alunos no layout do fragment (e para buscar um elemento do fragment é diferente).
Ok Francisco, já tinha percebido isso por pesquisas na web, porém por tentar seguir o curso, ainda não tinha procurado verificar como remover a opção de fragmento, mas com seu comentário e apoio ja busquei informação, e alterei a rotina e funcionou normalmente.
Muito obrigado.