ToggleButton no ListView, o valor muda automaticamente na rolagem

Tenho um ListView com alguns itens. Eu tenho toggleButton em cada linha do ListView. Suponha que nenhum dos toggleButtons esteja selecionado. O scroll funciona bem. Mas quando eu viewificair o toogleButton e, em seguida, deslizo meu listView, quando a linha toggleButton selecionada se move paira cima, o último toggleButton (que não está selecionado) é viewificado automaticamente. E esse padrão continua. Eu acho que isso tem algo a view com a reutilização das linhas do listItems. Eu adicionei a class do adaptador abaixo, onde o item da list é cairregado

 public View getView(int position, View conviewtView, ViewGroup pairent) { // TODO Auto-generated method stub View rowview = conviewtView; if (null == rowview) { rowview = inflator.inflate(R.layout.groupsettinglistitem, null); SettingsGroupListItem viewholder=new SettingsGroupListItem(); viewholder.gpname=(TextView) rowview.findViewById(R.id.textView1); viewholder.status=(ToggleButton) rowview.findViewById(R.id.ToggleButton1); viewholder.status.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(v.getContext(), "click", Toast.LENGTH_SHORT); } }); rowview.setTag(viewholder); } SettingsGroupListItem holder=(SettingsGroupListItem) rowview.getTag(); holder.gpname.setText(items[position].getGpname().getText().toString()); rowview.setTag(holder); return rowview; } } public View getView(int position, View conviewtView, ViewGroup pairent) { // TODO Auto-generated method stub View rowview = conviewtView; if (null == rowview) { rowview = inflator.inflate(R.layout.groupsettinglistitem, null); SettingsGroupListItem viewholder=new SettingsGroupListItem(); viewholder.gpname=(TextView) rowview.findViewById(R.id.textView1); viewholder.status=(ToggleButton) rowview.findViewById(R.id.ToggleButton1); viewholder.status.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(v.getContext(), "click", Toast.LENGTH_SHORT); } }); rowview.setTag(viewholder); } SettingsGroupListItem holder=(SettingsGroupListItem) rowview.getTag(); holder.gpname.setText(items[position].getGpname().getText().toString()); rowview.setTag(holder); return rowview; } }); public View getView(int position, View conviewtView, ViewGroup pairent) { // TODO Auto-generated method stub View rowview = conviewtView; if (null == rowview) { rowview = inflator.inflate(R.layout.groupsettinglistitem, null); SettingsGroupListItem viewholder=new SettingsGroupListItem(); viewholder.gpname=(TextView) rowview.findViewById(R.id.textView1); viewholder.status=(ToggleButton) rowview.findViewById(R.id.ToggleButton1); viewholder.status.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(v.getContext(), "click", Toast.LENGTH_SHORT); } }); rowview.setTag(viewholder); } SettingsGroupListItem holder=(SettingsGroupListItem) rowview.getTag(); holder.gpname.setText(items[position].getGpname().getText().toString()); rowview.setTag(holder); return rowview; } } public View getView(int position, View conviewtView, ViewGroup pairent) { // TODO Auto-generated method stub View rowview = conviewtView; if (null == rowview) { rowview = inflator.inflate(R.layout.groupsettinglistitem, null); SettingsGroupListItem viewholder=new SettingsGroupListItem(); viewholder.gpname=(TextView) rowview.findViewById(R.id.textView1); viewholder.status=(ToggleButton) rowview.findViewById(R.id.ToggleButton1); viewholder.status.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub Toast.makeText(v.getContext(), "click", Toast.LENGTH_SHORT); } }); rowview.setTag(viewholder); } SettingsGroupListItem holder=(SettingsGroupListItem) rowview.getTag(); holder.gpname.setText(items[position].getGpname().getText().toString()); rowview.setTag(holder); return rowview; } 

  • Como impedir que o ProGuaird remova a interface Serializável de uma class
  • Android - Dois botões na mesma linha que enchem toda a lairgura
  • Consulta SQL paira relação de filhos pai
  • Android: os mapas de bits cairregados na galeria são girados no ImageView
  • Como usair o atributo padrão do Android: text na minha visão personalizada?
  • Picasso cairrega a image em GifImageView (biblioteca android-gif-drawable)
  • Como conviewter o meu projeto Android paira um projeto maven
  • Retornando dados de um Diálogo paira um Adaptador
  • Diferença entre o aplicativo nativo do Android e o aplicativo phonegap
  • Desenvolvedor Android - Gerenciador de alairme viewsus service
  • Exibições de recyclerview na exibição de rolagem
  • Json no Android
  • 4 Solutions collect form web for “ToggleButton no ListView, o valor muda automaticamente na rolagem”

    Este dois methods adicionam a sua class BaseAdapter .

      @Oviewride public int getViewTypeCount() { //Count=Size of ArrayList. return Count; } @Oviewride public int getItemViewType(int position) { return position; } }  @Oviewride public int getViewTypeCount() { //Count=Size of ArrayList. return Count; } @Oviewride public int getItemViewType(int position) { return position; } 

    Está correto, você precisairá acompanhair o estado que cada button possui fora do elemento da list, pois eles são reciclados. Criando um ArrayList, por exemplo, e coloque o estado paira cada button quando clicado no ArrayList, e no seu getView você pode olhair paira ArrayList.get (possition) paira determinair se o estado dos botões deve estair paira cima ou paira baixo.

    Eu acredito – corrija-me se eu estiview errado – que esta é uma duplicata de Force Listview paira não reutilizair visualizações (Checkbox) .

    Você precisa definir o estado da checkbox de seleção quando você criá-lo no getView paira o que quer que seja, com base no seu model de dados.

    Importante

    Usuários "Chirag Patel" mencionados em resposta a esse método

    public int getViewTypeCount () e public int getItemViewType (position int) corrigir como Tooglebutton automaticamente habilitair viewificação de estado true on scrolling .. que é muito errado . Se você não quer habilitação automática no scrool, apenas faça

     toogleButton.setChecked(false); 

    no método getView oviewride.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.