Não estou conseguindo seguir em diante no curso , devido esse erro, pois outros exercícios depende do funcionamento.
public class ListaAlunosActivity extends Activity{
private ListView listViewAlunos;
private Aluno alunoSelecionado;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.item);
//fazendo a ponte entre XML e Java, e o devido Cast
listViewAlunos= (ListView) findViewById(R.id.lista);
registerForContextMenu(listViewAlunos);
Toast.makeText(ListaAlunosActivity.this,"Iniciou o aplicativo", Toast.LENGTH_LONG).show();
listViewAlunos.setOnItemClickListener( new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapter, View view, int posicao, long id) {
Aluno alunoParaSerAlterado = (Aluno) adapter.getItemAtPosition(posicao);
Intent edicao = new Intent(ListaAlunosActivity.this,FormularioActivity.class);
//Enviando pelo PutExtra
edicao.putExtra(Extras.ALUNO_SELECIONADO,alunoParaSerAlterado);
startActivity(edicao);
}
});
listViewAlunos.setOnItemLongClickListener(new OnItemLongClickListener()
{
@Override
public boolean onItemLongClick(AdapterView<?> adapter, View view, int posicao, long id)
{
//Toast.makeText(ListaAlunosActivity.this, "Aluno clicado: "+alunos[posicao], Toast.LENGTH_SHORT).show();
alunoSelecionado = (Aluno) adapter.getItemAtPosition(posicao);
return false;
}
});
} // onCreate
private void carregaLista(){
AlunoDAO alunoDAO = new AlunoDAO(this);
//pegar alunos do banco ou seja do DAO
//getLista() tem um retorno do tipo List<Aluno> então temos que criar a variável desse tipo para receber o retorno
List<Aluno> listAlunos=alunoDAO.getLista();
if (listAlunos.isEmpty())
Toast.makeText(ListaAlunosActivity.this,"Nenhum aluno cadastrado", Toast.LENGTH_LONG).show();
//Criando o adpter para passar o array do Java para android
//ArrayAdapter<Aluno> adapter = new ArrayAdapter<Aluno>(this,android.R.layout.simple_list_item_1, listAlunos);
// Associar o adpter criado para o LIstView
ListaAlunosAdapter adapter = new ListaAlunosAdapter(this,listAlunos);
listViewAlunos.setAdapter(adapter);
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
this.carregaLista();
}
//Importando Menu XML
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.menu_lista_alunos, menu);
return super.onCreateOptionsMenu(menu);
}
//Comportamento ao clicalr
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.novo:
Intent irParaFormulario = new Intent(this,FormularioActivity.class);
startActivity(irParaFormulario);
return false;
case R.id.mapa:
Intent intentMapa = new Intent(Intent.ACTION_VIEW);
intentMapa.setData(Uri.parse("geo:0,0?z=14&q="+alunoSelecionado.getEndereco()));
startActivity(intentMapa);
return false;
default:
}
return super.onOptionsItemSelected(item);
}
// Menu suspenso
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
// criando menu programaticamente
// Não esquecer de registrar a lista para ter um menu de contexto
MenuItem ligar = menu.add(0,0,0,"Ligar");
// Intent intentLigar = new Intent(Intent.ACTION_CALL);
Intent intentLigar = new Intent(Intent.ACTION_DIAL);
intentLigar.setData(Uri.parse("tel:"+alunoSelecionado.getTelefone()));
ligar.setIntent(intentLigar);
MenuItem SMS = menu.add("Enviar SMS");
Intent intentSMS = new Intent(Intent.ACTION_VIEW);
intentSMS.setData(Uri.parse("sms:"+alunoSelecionado.getTelefone()));
intentSMS.putExtra("sms_body"," Olá sou o Douglas Raphael, retornarei a ligação assim que possível");
SMS.setIntent(intentSMS);
// MenuItem mapa = menu.add("Achar no Mapa");
/* mapa.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
Intent intentMapa = new Intent(Intent.ACTION_VIEW); intentMapa.setData(Uri.parse("geo:0,0?z=14&q="+alunoSelecionado.getEndereco()));
setIntent(intentMapa);
startActivity(intentMapa);
return false;
}
});
*/
MenuItem mapa = menu.add("Achar no Mapa");
Intent intentMapa = new Intent(Intent.ACTION_VIEW); intentMapa.setData(Uri.parse("geo:0,0?z=14&q="+alunoSelecionado.getEndereco()));
mapa.setIntent(intentMapa);
MenuItem site = menu.add("Navegar no site");
Intent intentSite = new Intent(Intent.ACTION_VIEW);
String http = alunoSelecionado.getSite().startsWith("http://")?"":"http://";
intentSite.setData(Uri.parse(http+alunoSelecionado.getSite()));
site.setIntent(intentSite);
MenuItem deletar = menu.add("Deletar");
deletar.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
AlunoDAO dao = new AlunoDAO(ListaAlunosActivity.this);
dao.deletar(alunoSelecionado);
dao.close();
carregaLista();
return false;
}
});
MenuItem email = menu.add(0,5,0, "Enviar E-mail");
Intent intentEmail = new Intent(Intent.ACTION_SEND);
intentEmail.setType("message/rfc822");
intentEmail.putExtra(Intent.EXTRA_EMAIL,
new String[] { "caelum@caelum.com.br" });
intentEmail.putExtra(Intent.EXTRA_SUBJECT, "Elogios do curso de android");
intentEmail.putExtra(Intent.EXTRA_TEXT, "Este curso é ótimo!!!");
email.setIntent(intentEmail);
MenuItem emailOP = menu.add(0,5,0, "Enviar E-mail ,...");
email.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
Intent intentEmail = new Intent(Intent.ACTION_SEND);
intentEmail.setType("message/rfc822");
intentEmail.putExtra(Intent.EXTRA_EMAIL,
new String[] { "caelum@caelum.com.br" });
intentEmail.putExtra(Intent.EXTRA_SUBJECT, "Elogios do curso de android");
intentEmail.putExtra(Intent.EXTRA_TEXT, "Este curso é ótimo!!!");
startActivity(Intent.createChooser(intentEmail, "Selecione a sua aplicação de email!"));
return false;
}
});
/*
MenuItem compartilhar = menu.add(0,5,0, "Compartilhar...");
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "assunto do que será compartilhado");
intent.putExtra(Intent.EXTRA_TEXT, "texto do que será compartilhado");
startActivity(Intent.createChooser(intent, "Escolha como compartilhar"));
*/
super.onCreateContextMenu(menu, v, menuInfo);
}
}
public class ListaAlunosAdapter extends BaseAdapter {
private final List<Aluno> listAlunos;
private Activity activity;
public ListaAlunosAdapter(Activity activity,List<Aluno> listAlunos) {
this.listAlunos = listAlunos;
this.activity=activity;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return listAlunos.size();
}
@Override
public Object getItem(int posicao) {
return listAlunos.get(posicao);
}
@Override
public long getItemId(int posicao) {
// TODO Auto-generated method stub
return listAlunos.get(posicao).getId();
}
@Override
public View getView(int posicao, View arg1, ViewGroup arg2) {
Aluno aluno = listAlunos.get(posicao);
View view = activity.getLayoutInflater().inflate(br.com.caelum.cadastro.R.layout.item, null);
if (posicao % 2 == 0) {
view.setBackgroundColor(activity.getResources().
getColor(br.com.caelum.cadastro.R.color.linha_par));
}
Bitmap bm;
TextView nome = (TextView) view.findViewById(br.com.caelum.cadastro.R.id.nome);
nome.setText(aluno.toString());
if (aluno.getCaminhoFoto() != null) {
bm = BitmapFactory.decodeFile(aluno.getCaminhoFoto());
}
else
{
bm = BitmapFactory.decodeResource(activity.getResources(),br.com.caelum.cadastro.R.drawable.ic_no_image);
}
bm = Bitmap.createScaledBitmap(bm, 100, 100, true);
ImageView foto =(ImageView) view.findViewById(br.com.caelum.cadastro.R.id.foto);
foto.setImageBitmap(bm);
return view;
}
}