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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top