2017-06-06 12 views
0

私のリストビューではチェックボックスがあり、チェックボックスをオンにすると最初に10行を選択する必要があります。このようなコードを実行しましたが、最初のものを除くすべての行の残りを選択しています10行..誰でも私を助けることができます。私はここで何をする必要がありますか?Androidリストビュー最初の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(); 


         } 
+0

if条件をif(i> firstListItemPosition || i

+0

位置が正しくない可能性もあります。 getFirstVisiblePosition()は、必要な位置になる場合とそうでない場合があります。ユーザーが位置2を選択した場合、これはエラーになります。あなたは各チェックボックスの位置をホルダーに保存し、ユーザーがスクロールするときにチェックをオン/オフに設定して、ユーザーが目に見えるチェックボックスで開始できるようにすることができます。ユーザーが別のものを確認した場合は、クリアして再設定してください。10. – CmosBattery

+0

いいえ動作していません... – Jocheved

答えて

0

条件が

if (i > firstListItemPosition && i < lastListItemPosition)

+0

私はこれを試しました...クラッシュしています – Jocheved

0

からif (i < firstListItemPosition || i > lastListItemPosition)

変更、それを間違っている場合はあなたの私は、もし最初の事はあなたが望んでいたものをせずにすべてのチェックボックスをチェックすると思います。

にif文を変更してみてください私> firstListItemPosition & &私は< lastListItemPosition

私は、私はあなたが正しく何をしたいのか理解してほしいです。

+0

役に立たなかった – Jocheved

+0

もう少しやりたいことを説明してもらえますか? – AppPhil

+0

私はリストビューとチェックボックスを持っています。 select 10 rows ...ユーザーがそのチェックボックスを選択したとき...最初の10個のチェックボックスを選択する必要があります...私はあなたのコードで試しましたが、クラッシュしてelse条件をコメントしました...その時...一度に選択していないのですが、スクロールして戻ったときに最初の9つが選択されたのを見ました。しかし、スクロールした後にのみ選択されました。 – Jocheved

関連する問題