Guia Manuseio de conteúdo… Como no Android?
-
20-09-2019 - |
Pergunta
Eu tenho uma tabactividade com duas guias.
Nesta tabactividade, eu tenho EditText e Button para pesquisar no banco de dados local.
Eu tenho uma classe ListActivity como um tabcontent. Isso mostra o Framelayout.
Quero atualizar essa listatividade com base no texto inserido no EditText, que está na tabactividade.
Como fazer isso?
Eu criei um método em uma listatividade:
public void search(String temp) {
String val=temp;
try{
c=BruTube_Videos.this.getContentResolver().query(Constants.CONTENT_URI, null, Constants.TITLE+" like '%"+val+"%'", null, "DATETIME("+Constants.PUBLISHED+") DESC");
}catch(Exception e){
Log.v(TAG, "exp in cursor");
}
show(c);
}
Invoque este método em uma tabactividade como esta:
EditText et1=(EditText) findViewById(R.id.EditText01);
String temp=et1.getText().toString();
BruTube_Videos vdo_obj=new BruTube_Videos();
vdo_obj.search(temp);
Ele mostra uma exceção no logcat:
02-12 16: 58: 26.623: Verbose/brutube_videos (227): Exceção na pesquisa de brutube: java.lang.illegalStateException: Serviços do sistema não disponíveis para atividades antes de OnCreate ()
Como posso gerenciar isso?
obrigado.
Solução
BruTube_Videos vdo_obj=new BruTube_Videos();
Nunca chame um construtor em um Activity
. Você nunca cria atividades - diz ao Android para iniciá -las. Essa é a fonte do seu erro.
Eu o encorajo fortemente a se livrar das atividades e ter um único TabActivity
segurando Views
- um que é um layout para o seu formulário de edição, que é o seu ListView
. Em seguida, você não ficará confuso sobre o que o código vai, pois existe apenas uma atividade. Isso também é mais eficiente de um ponto de vista de programação, memória, CPU e utilização da bateria.