Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Layout com titulo e lista

Lucio,

pensei melhor no que você falou e passei o código do refresh pra dentro do adapter.
agora funcionou também sem fazer a declaração na mao e sem precisar chamar o tal refresh.

valeu pela 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 luciofm <luciofm@gmail.com>
O problema está aqui:

> ListarCidades listaCidades = new ListarCidades();

Você está instanciando uma activity na mão, isso não se faz NUNCA.
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)
>>
>

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário