2017-12-11 30 views
1

私は異なるオブジェクトのarraylistsを持っています。オブジェクトはchildrensubjectsです。サイズの異なる2人のarraylists

child idsubject idと一致するたびに、それは子が通過したことを意味し、サブジェクトIDはサーバーで削除されます。つまり、その子IDが削除されたsubjectsのリストが表示されます。そして、両方のリストのサイズが異なります。 Subjectリストサイズがchildren以下です。

これはフラグメントの私のコードです -

ArrayList<Children> children = getChildren(getActivity()); 
ArrayList<Subjects> subjects = getSubjects(getActivity()); 

if (children != null && !children.isEmpty()) { 

    for (Children child : children) { 

     for (Subjects subject : subjects) { 

      try { 
       int pos = adapter.contains(child.getId()); 
       if (pos == -1) { 
        data = new ChildListAdapter.childData(); 
        data.setChild(child); 
        adapter.addItem(data); 

       } else { 
        data = adapter.getItem(pos); 
        data.setChild(child); 
       } 

       if (subject.getChildId().equalsIgnoreCase(child.getId())) { 
        data.setSubject(subject); 
       } 


       adapter.notifyDataSetChanged(); 


      } catch (Exception e) { 
       e.getMessage(); 
      } 
     } 
    } 
} 

これはgetView()内のアダプタで私のコードです -

if (childData().getChild().getId().equals(childData().getSubject().getChildId())) { 

       holder.status.setText("Passed"); 
      } else { 
      //I dont enter here :(
      holder.status.setText("Failed"); 
      } 

問題がされて - a)対象リストのサイズが縮小されますたびに、私はステータスを「Failed」と表示する必要がありますが、現在は です。elseステートメントを入力しないでください。それはなぜそうですか?

+0

どこgetViewメソッドを呼び出すのですか? –

+0

そのアダプタ内... BaseAdapterを拡張します。 – Monique890

+0

if文の外で 'adapter.notifyDataSetChanged()'を移動します。 – Gianlu

答えて

0

は、それが「失敗」のメッセージ後、以下だ場合は、2値を比較し、配列リストのサイズを格納し、getViewメソッド()メソッドにそれの複製を作成する変数を作成します

関連する問題