Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Percorrer ListView

Estou fazendo isso no getView mas a aplicação esta dando erro.

Estou fazendo da seguinte forma:

CheckBox chkSelecContato = (CheckBox)view.findViewById(R.id.chkSelecContato);
chkSelecContato.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
CheckBox cb = (CheckBox)view;
ContatosImportar ciImp = (ContatosImportar)cb.getTag();
Toast.makeText(context, ciImp.getFoneContato(), Toast.LENGTH_SHORT).show();
}
});


e ai da o seguinte erro:

03-26 23:25:22.973: E/AndroidRuntime(460): Uncaught handler: thread main exiting due to uncaught exception
03-26 23:25:22.994: E/AndroidRuntime(460): java.lang.NullPointerException
03-26 23:25:22.994: E/AndroidRuntime(460): at com.simpatico.agenda.ContatosImportarAdapter$1.onClick(ContatosImportarAdapter.java:66)
03-26 23:25:22.994: E/AndroidRuntime(460): at android.view.View.performClick(View.java:2364)
03-26 23:25:22.994: E/AndroidRuntime(460): at android.widget.CompoundButton.performClick(CompoundButton.java:98)
03-26 23:25:22.994: E/AndroidRuntime(460): at android.view.View.onTouchEvent(View.java:4179)
03-26 23:25:22.994: E/AndroidRuntime(460): at android.widget.TextView.onTouchEvent(TextView.java:6540)
03-26 23:25:22.994: E/AndroidRuntime(460): at android.view.View.dispatchTouchEvent(View.java:3709)
03-26 23:25:22.994: E/AndroidRuntime(460): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-26 23:25:22.994: E/AndroidRuntime(460): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-26 23:25:22.994: E/AndroidRuntime(460): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-26 23:25:22.994: E/AndroidRuntime(460): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-26 23:25:22.994: E/AndroidRuntime(460): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-26 23:25:22.994: E/AndroidRuntime(460): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-26 23:25:22.994: E/AndroidRuntime(460): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-26 23:25:22.994: E/AndroidRuntime(460): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-26 23:25:22.994: E/AndroidRuntime(460): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
03-26 23:25:22.994: E/AndroidRuntime(460): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
03-26 23:25:22.994: E/AndroidRuntime(460): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
03-26 23:25:22.994: E/AndroidRuntime(460): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
03-26 23:25:22.994: E/AndroidRuntime(460): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
03-26 23:25:22.994: E/AndroidRuntime(460): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
03-26 23:25:22.994: E/AndroidRuntime(460): at android.os.Handler.dispatchMessage(Handler.java:99)
03-26 23:25:22.994: E/AndroidRuntime(460): at android.os.Looper.loop(Looper.java:123)
03-26 23:25:22.994: E/AndroidRuntime(460): at android.app.ActivityThread.main(ActivityThread.java:4363)
03-26 23:25:22.994: E/AndroidRuntime(460): at java.lang.reflect.Method.invokeNative(Native Method)
03-26 23:25:22.994: E/AndroidRuntime(460): at java.lang.reflect.Method.invoke(Method.java:521)
03-26 23:25:22.994: E/AndroidRuntime(460): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
03-26 23:25:22.994: E/AndroidRuntime(460): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
03-26 23:25:22.994: E/AndroidRuntime(460): at dalvik.system.NativeStart.main(Native Method)


Em 26 de março de 2012 20:07, Neto Marin <netomarin@gmail.com> escreveu:
Como você tem um elemento clicável na célula, o listener definido no Adapter não da certo. Então, no getView do Adapter eu defino o listener no checkbox.


[]s
Neto
---
Neto Marin

Blog: http://blog.netomarin.com
GTalk: netomarin@gmail.com
MSN: neto_marin@hotmail.com
Skype: netomarin


On Mon, Mar 26, 2012 at 7:28 PM, Luiz Gustavo Mafra <lgmafra@gmail.com> wrote:
Nesse caso você criou o onClickListener() dentro da classe adapter ou na classe que é montada a listview??

Em 25 de março de 2012 21:35, Neto Marin <netomarin@gmail.com> escreveu:

Eu já fiz algo assim, resolvi colocando um listener nos checkbox e atualizando um array de boolean, com os mesmo indíces do array de objetos que renderizam a lista.
Ai na ação do botão, eu percorro esse array de boolean e sei o indice que quem está com checked.

[]s
Neto
---
Neto Marin

Blog: http://blog.netomarin.com
GTalk: netomarin@gmail.com
MSN: neto_marin@hotmail.com
Skype: netomarin



On Sun, Mar 25, 2012 at 9:29 PM, Luiz Gustavo Mafra <lgmafra@gmail.com> wrote:
Pessoal,

Tenho uma listview onde nela existem dois TextView e um CheckBox e um botão no rodapé do layout.
Gostaria de saber como faço para no onClick do meu botão eu percorrer a ListView e pegar os valores contidos nos TextView somente quando o CheckBox estiver checado.

Att,

--
Luiz Gustavo S. Mafra
Bacheralando em Ciência da Computação - UESC
Programador PHP, dotNet, Android

twitter: @lgmafra
skype: lgmafra





--
Luiz Gustavo S. Mafra
Bacheralando em Ciência da Computação - UESC
Programador PHP, dotNet, Android

twitter: @lgmafra
skype: lgmafra





--
Luiz Gustavo S. Mafra
Bacheralando em Ciência da Computação - UESC
Programador PHP, dotNet, Android

+55 73 8142 3045
+55 73 8838 9639
+55 73 8869 9799

twitter: @lgmafra
skype: lgmafra

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

0 comentários:

Postar um comentário