Lucio,
valeu pela observação, mas não achei outra forma de chamar o refresh de dentro do adapter.
Agora essa parte ta funcionando.
se eu descobrir como fazer diferente altero isso.
valeu.
Maicon Strey
Novo Hamburgo - RS - Brasil
------------------
http://www.softwarelivre-vs.org
http://www.safernet.org.br/site/prevencao/glossarios/netiqueta
Novo Hamburgo - RS - Brasil
------------------
http://www.softwarelivre-vs.org
http://www.safernet.org.br/site/prevencao/glossarios/netiqueta
Linux user: #525086
------------------
2012/3/11 luciofm <luciofm@gmail.com>
O problema está aqui:
Você está instanciando uma activity na mão, isso não se faz NUNCA.
> ListarCidades listaCidades = new ListarCidades();
essa activity não vai ter um Context dessa forma...
Acho que você precisa estudar um pouco mais para entender o que é uma
Activity e seu ciclo de vida.
Lúcio Maciel
luciofm@gmail.com
2012/3/11 Maicon Strey <mstrey@gmail.com>:
> Bom dia Marcelo,
> Valeu pela dica. Veja se eu entendi. Passei o context que eu já tenho no meu
> adapter pro refresh. mas agora o erro ocorre no startactivity
>
> No meu adapter:
> ****************************
> public class CidadeAdapter extends BaseAdapter{
> (...)
> v.setOnClickListener(new View.OnClickListener() {
> @Override
> public void onClick(View view) {
> // TODO Auto-generated method stub
> Log.i(CATEGORIA,"onClick");
> CidadeDAO dao = new CidadeDAO(ctx);
> dao.favoritar(cidade);
> ListarCidades listaCidades = new ListarCidades();
> listaCidades.refresh(ctx);
> }
> });
> (...)
> ****************************
>
> na minha activity:
> ****************************
> public class ListarCidades extends Activity{
> (...)
> protected void refresh(Context ctx) {
> Intent it = new Intent(ctx, ListarCidades.class);
> startActivity(it); \\ <-- o erro ocorre nesta linha
> this.finish();
> }
> }
> ****************************
> então recebo um nullpointerexception
> logcat:
> ****************************
> 03-11 10:15:02.304: E/AndroidRuntime(263): Uncaught handler: thread main
> exiting due to uncaught exception
> 03-11 10:15:02.323: E/AndroidRuntime(263): java.lang.NullPointerException
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> android.app.Activity.startActivityForResult(Activity.java:2749)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> android.app.Activity.startActivity(Activity.java:2855)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> br.nom.strey.maicon.comparador.city.ListarCidades.refresh(ListarCidades.java:72)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> br.nom.strey.maicon.comparador.city.CidadeAdapter$2.onClick(CidadeAdapter.java:92)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> android.view.View.performClick(View.java:2364)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> android.view.View.onTouchEvent(View.java:4179)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> android.view.View.dispatchTouchEvent(View.java:3709)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:852)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> android.app.Activity.dispatchTouchEvent(Activity.java:2061)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> android.os.Handler.dispatchMessage(Handler.java:99)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> android.os.Looper.loop(Looper.java:123)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> android.app.ActivityThread.main(ActivityThread.java:4363)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> java.lang.reflect.Method.invokeNative(Native Method)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> java.lang.reflect.Method.invoke(Method.java:521)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
> 03-11 10:15:02.323: E/AndroidRuntime(263): at
> dalvik.system.NativeStart.main(Native Method)
> ****************************
>
> Alguém tem alguma dica?
>
> Maicon Strey
> Novo Hamburgo - RS - Brasil
> ------------------
> http://www.softwarelivre-vs.org
> http://www.safernet.org.br/site/prevencao/glossarios/netiqueta
> Linux user: #525086
> ------------------
>
>
>
> 2012/3/11 Marcelo Henrique <marcelohd02@gmail.com>
>>
>> Isso e erro de Context.
>>
>>
>> Intent intent = new Intent(ClasseA.this,ClasseB.class);
>> startActivity(intent);
>>
>> http://stackoverflow.com/questions/3572463/what-is-context-in-android
>>
>> Em 10 de março de 2012 18:11, Maicon Strey <mstrey@gmail.com> escreveu:
>>
>>> Olá Pessoal,
>>> Segui a dica do jonas e consegui. Mas agora estou com outro problema.
>>> no evento onclick de cada elemento da lista o aplicativo marca a cidade
>>> como favorita no sqlite. agora preciso recarregar a lista automaticamente
>>> para que o usuário possa ver que aquela cidade teve o status favorita
>>> alterada.
>>>
>>> No meu adapter:
>>> ****************************
>>> public class CidadeAdapter extends BaseAdapter{
>>> (...)
>>> v.setOnClickListener(new View.OnClickListener() {
>>> @Override
>>> public void onClick(View view) {
>>> // TODO Auto-generated method stub
>>> Log.i(CATEGORIA,"onClick");
>>> CidadeDAO dao = new CidadeDAO(ctx);
>>> dao.favoritar(cidade);
>>> ListarCidades listaCidades = new ListarCidades();
>>> listaCidades.refresh();
>>> }
>>> });
>>> (...)
>>> ****************************
>>>
>>> na minha activity:
>>> ****************************
>>> public class ListarCidades extends Activity{
>>> (...)
>>> protected void refresh() {
>>> Intent it = new Intent(this, ListarCidades.class); \\ <-- o erro
>>> ocorre nessa linha
>>> startActivity(it);
>>> this.finish();
>>> }
>>> }
>>> ****************************
>>> então recebo um nullpointerexception
>>> logcat:
>>> ****************************
>>> 03-10 18:09:41.104: E/AndroidRuntime(1905): Uncaught handler: thread main
>>> exiting due to uncaught exception
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905):
>>> java.lang.NullPointerException
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> android.content.ContextWrapper.getPackageName(ContextWrapper.java:120)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> android.content.ComponentName.<init>(ComponentName.java:75)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> android.content.Intent.<init>(Intent.java:2551)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> br.nom.strey.maicon.comparador.city.ListarCidades.refresh(ListarCidades.java:70)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> br.nom.strey.maicon.comparador.city.CidadeAdapter$2.onClick(CidadeAdapter.java:92)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> android.view.View.performClick(View.java:2364)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> android.view.View.onTouchEvent(View.java:4179)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> android.view.View.dispatchTouchEvent(View.java:3709)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:852)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> android.app.Activity.dispatchTouchEvent(Activity.java:2061)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> android.os.Handler.dispatchMessage(Handler.java:99)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> android.os.Looper.loop(Looper.java:123)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> android.app.ActivityThread.main(ActivityThread.java:4363)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> java.lang.reflect.Method.invokeNative(Native Method)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> java.lang.reflect.Method.invoke(Method.java:521)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
>>> 03-10 18:09:41.124: E/AndroidRuntime(1905): at
>>> dalvik.system.NativeStart.main(Native Method)
>>> ****************************
>>>
>>> Sei que não deve ser muito complicado e eu que devo estar ratiando em
>>> alguma coisa.
>>>
>>> Alguém sabe o que pode ser?
>>>
>>>
>>> Maicon Strey
>>> Novo Hamburgo - RS - Brasil
>>> ------------------
>>> http://www.softwarelivre-vs.org
>>> http://www.safernet.org.br/site/prevencao/glossarios/netiqueta
>>> Linux user: #525086
>>> ------------------
>>>
>>>
>>>
>>> 2012/2/23 Thiago Lopes Rosa <thiago.rosa@gmail.com>
>>>>
>>>> ahnnnn... bacana! =)
>>>>
>>>>
>>>> thiago
>>>>
>>>>
>>>> 2012/2/23 Jonas Alves <jonasfa@gmail.com>
>>>>>
>>>>> Só pra complementar: é possível usar a ListActivity com um layout
>>>>> qualquer. Basta que seu layout tenha uma AdapterView (ex: ListView,
>>>>> GridView, etc) com id=android:id/list, e então é só você usar o método
>>>>> setContentView no seu onCreate para carregar esse layout.
>>>>>
>>>>>
>>>>> 2012/2/22 Thiago Lopes Rosa <thiago.rosa@gmail.com>
>>>>>>
>>>>>> Este layout está sendo usado em todas as linhas da lista. Portanto
>>>>>> você não pode colocar o título nele.
>>>>>>
>>>>>> Eu resolveria da seguinte forma:
>>>>>> 1) Tira o extends de ListActivity e coloca Activity
>>>>>> 2) Cria um layout com titulo + listview
>>>>>> 3) Seta o seu CityAdapter nesse listview
>>>>>>
>>>>>>
>>>>>>
>>>>>> Thiago
>>>>>>
>>>>>>
>>>>>> 2012/2/18 Marcelo Henrique <marcelohd02@gmail.com>
>>>>>>>
>>>>>>> geralemnte a gente colocar o Scrol fora de todos as tag layout
>>>>>>>
>>>>>>>
>>>>>>> 2012/2/18 Maicon Strey <mstrey@gmail.com>
>>>>>>>>
>>>>>>>> Marcelo,
>>>>>>>> Fiquei confuso. Pelo que vi esse trecho que tu destacou já está no
>>>>>>>> nível mais alto. Mas por via das duvidas criei um novo Linear Layout só pra
>>>>>>>> ele (titulo) e outro linear layout só pro scrollview.
>>>>>>>> Mesmo assim o comportamento segue o mesmo.
>>>>>>>>
>>>>>>>> Alguém tem mais alguma ideia?
>>>>>>>>
>>>>>>>> Maicon Strey
>>>>>>>> Novo Hamburgo - RS - Brasil
>>>>>>>> ------------------
>>>>>>>> http://www.softwarelivre-vs.org
>>>>>>>> http://www.safernet.org.br/site/prevencao/glossarios/netiqueta
>>>>>>>> Linux user: #525086
>>>>>>>> ------------------
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> 2012/2/18 Marcelo Henrique <marcelohd02@gmail.com>
>>>>>>>>>
>>>>>>>>> <LinearLayout
>>>>>>>>> android:orientation="horizontal"
>>>>>>>>> android:layout_width="fill_parent"
>>>>>>>>> android:layout_height="fill_parent">
>>>>>>>>> <TextView android:text="Titulo Cidades"
>>>>>>>>> android:id="@+id_listaCidades/titulo"
>>>>>>>>> android:layout_width="wrap_content"
>>>>>>>>> android:layout_height="wrap_content" />
>>>>>>>>> </LinearLayout>
>>>>>>>>>
>>>>>>>>> tenta colocar esse dai fora deste linear layout filho e colocanado
>>>>>>>>> ele no linear layout - pai
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> - Marcelo Henrique -
>>>>>>> "Se não puder se destacar pelo talento, vença pelo esforço." (Dave
>>>>>>> Weinbaum)
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Thiago Rosa
>>>>>> http://www.thiagorosa.com.br
>>>>>> https://market.android.com/developer?pub=Thiago+Rosa
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Jonas Alves
>>>>> @jonas_alves
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Thiago Rosa
>>>> http://www.thiagorosa.com.br
>>>> https://market.android.com/developer?pub=Thiago+Rosa
>>>>
>>>
>>
>>
>>
>> --
>> - Marcelo Henrique -
>> "Se não puder se destacar pelo talento, vença pelo esforço." (Dave
>> Weinbaum)
>>
>






0 comentários:
Postar um comentário