>
Boa tarde rafael, estou criando uma lista de clientes no android. Coloquei dois TextView fiz toda configuração para chamar a
ListActivity e esta funcionando tudo ok, trabalhando com BaseAdapter. Porém eu gostaria de adicionar um botão ao final
da listagem para o usuario poder fechar a lista, sem ter que clicar no botao voltar do celular. A questão é que esse botão esta
sendo tambem replicado pela ListActivity, tem como resolver isso, ou não se usa colocar botão de voltar numa listagem de dados?
Opa
Não use uma ListActivity.
Use uma activity normal, ai desenha o XML dela, joga um listview e em baixo dele o botão.
Porque se usar a ListActivity, não pode personalizar fora dela.
Boa tarde Rafael, alterei a classe para herdar de Activity como você disse, porém antes eu fazia dessa forma:
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
criaBancodeDados();
Cursor dados = db.rawQuery("Select id, nome, endereco from clientes order by nome ",null);
ArrayList
dados.moveToFirst();
while (!dados.isAfterLast() ){
lista.add(new ClienteVO(dados.getInt(0), dados.getString(1).toString(),dados.getString(2).toString()));
dados.moveToNext();
}
ClienteAdapter adapter = new ClienteAdapter(this, lista);
setListAdapter(adapter);
}
O metodo setListAdpater não existe na Activity, então apos a alteração eu comentei o metodo.
Porém ao abrir a activity da listagem não aparece mais os dados.
Como faço para setar o adapter na activity?
Opa
Sim, mas agora você criou o XML novo? com um layout e dentro do layout coloca o ListView e toda a personalização que você quer.
E neste código, recupera o listview, pelo findviewbyid e chama o setlistadataper dele.
No seu aguardo
Bom dia Rafael, deu certinho só tenho uma observação a fazer. Utilizei o comando
db.RawQuery("Select clientes.id, clientes.nome, clientes.endereco from clientes").
String[] from = {"id","nome","endereco"}. No primeiro caso o Android reclamou que nao existia o campo _id,
sendo que no banco nao existe campo "_id". Ate ai tudo bem, no SQL coloquei "clientes.id as _id". Quando fiz isso
ele reclamou que não existia o campo "nome", "endereco". Resumindo tive que colocar os comandos "clientes.nome as nome",
"clientes.endereco as endereco". Será que isso pode ser algum bug do plugin ADT, ou posso ter feito algo errado.
Mais e só uma curiosidade mesmo, o meu fonte ja ta rodando certinho.
Opa
Mas porque não faz assim:
Select id, nome, endereco from clientes
Esse seria o SQL correto. Somente faça desse jeito se usar JOIN no SQL.
Outra coisa, é um padrão Android usar os campos id como _id. Assim, sugiro que altere no banco.
Muitas classes já procuram diretamente por este nome (_id)