ListView中的ToggleButton,值在滚动时自动更改

Jos*_*eph 7 android togglebutton android-listview

我有ListView一些物品.我在ListView的每一行都有toggleButton.假设没有选择任何toggleButtons.滚动效果很好.但是当我检查toogleButton,然后滚动我的listView时,当所选的toggleButton的行向上移动时,最后一个toggleButton(未选中)会自动检查.这种模式还在继续.我认为它与重用listItems的行有关.我在下面添加了适配器类,列表项加载

public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View rowview = convertView;
    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;
}
Run Code Online (Sandbox Code Playgroud)

Chi*_*tel 13

这两个方法在您的BaseAdapter课程中添加.

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

            @Override
            public int getItemViewType(int position) {

                return position;
            }
Run Code Online (Sandbox Code Playgroud)

  • 这个解决方案有效,有人可以解释一下这种行为的原因. (3认同)