Android Listview选择前十项

时间:2017-06-06 06:08:44

标签: android listview checkbox

在我的列表视图中,我有一个复选框,当我选择复选框时,首先需要选择10行,我做了这样的代码..但它选择除了前10行之外的所有行的其余部分。帮助我......我需要做些什么改变。

if (checked)
                  {
                     // Toast.makeText(MyList.this, "Checked.", Toast.LENGTH_LONG).show();
                      //for(int i=0; i<lv.getChildCount();i++)
                      for(int i=0; i<lv.getAdapter().getCount();i++)
                      {

                          int m = 1;
                          final int firstListItemPosition = lv.getFirstVisiblePosition();

                          //final int firstListItemPosition = (int) lv.getItemAtPosition(m);
                          final int lastListItemPosition = firstListItemPosition + 9;



                          if (i < firstListItemPosition || i > lastListItemPosition ) {
                              View vii = lv.getAdapter().getView(i, null, lv);
                              //return listView.getAdapter().getView(pos, null, listView);
                              CheckBox cb = (CheckBox)vii.findViewById(R.id.selected);
                              cb.setChecked(true);

                          } else {
                              final int childIndex = i - firstListItemPosition;

                              CheckBox cb = (CheckBox)lv.getChildAt(childIndex).findViewById(R.id.selected);
                              cb.setChecked(true);
                          }
                          //Toast.makeText(MyList.this,s, Toast.LENGTH_LONG).show();


                      }

2 个答案:

答案 0 :(得分:0)

您的if条件错误if (i < firstListItemPosition || i > lastListItemPosition )

将其更改为

if (i > firstListItemPosition && i < lastListItemPosition )

答案 1 :(得分:0)

我认为第一个if if会检查所有复选框而没有你想要的复选框。

尝试将if语句更改为 我&gt; firstListItemPosition&amp;&amp;我&lt; lastListItemPosition

我希望我明白你想要做的正确。

相关问题