Tecnologia do Blogger.
RSS

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

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



--
Jonas Alves



--
Thiago Rosa

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

0 comentários:

Postar um comentário