2017-01-13 12 views
0

以下のコードは最後の要素を4回繰り返します。このListViewは、タブ付きのアクティビティフラグメントで使用されます。私はインターネットで検索しましたが、役に立たないことは何も見つかりませんでした。助けてください!私のカスタムリストビューアダプターが最後の項目を繰り返します

マイアダプタクラス:そのリストビューの

public class MyAdapter extends ArrayAdapter<ElementList> { 
public MyAdapter(Context context, ArrayList<ElementList> EventList){ 
    super(context,0,EventList); 
} 

@Override 
public View getView(final int position, View convertView, ViewGroup parent){ 


    ViewHolder holder; 

    if (convertView == null) { 
     convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_adapter, parent, false); 

     holder = new ViewHolder(); 
     holder.id = (TextView) convertView.findViewById(R.id.textView9); 
     holder.name = (TextView) convertView.findViewById(R.id.textView6); 
     holder.date =(TextView)convertView.findViewById(R.id.textView7); 
     holder.time =(TextView)convertView.findViewById(R.id.textView8); 

     convertView.setTag(holder); 
    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 

    ElementList elementList = getItem(position); 

    if(elementList != null) { 

     holder.id.setText(ElementList.id); 
     holder.name.setText(ElementList.name); 
     holder.date.setText(ElementList.date); 
     holder.time.setText(ElementList.time); 
    } 

    return convertView; 
} 

使用法:

ArrayList<ElementList> EventList = new ArrayList<ElementList>(); 
EventList.add(new ElementList("1","bla1","12/34/45","12:40")); 
        EventList.add(new ElementList("1","bla2","12/34/45","12:40")); 
        EventList.add(new ElementList("1","bla3","12/34/45","12:40")); 
        EventList.add(new ElementList("1","bla4","12/34/45","12:40")); 

       MyAdapter adapter = new MyAdapter(getActivity(),EventList); 
       ListView myList = (ListView) rootView.findViewById(R.id.listView); 
       myList.setAdapter(adapter); 

任意の提案ですか? 。

+0

問題の明確化 –

+0

アダプターのnotifyDataSetChanged()をリストに設定した後で呼び出すことはできますか? – DNax

答えて

0

私はこの

if(elementList != null) { 

    holder.id.setText(ElementList.id); 
    holder.name.setText(ElementList.name); 
    holder.date.setText(ElementList.date); 
    holder.time.setText(ElementList.time); 
    } 

この

if(elementList != null) { 

    holder.id.setText(elementList.id); 
    holder.name.setText(elementList.name); 
    holder.date.setText(elementList.date); 
    holder.time.setText(elementList.time); 
} 

されるべきだと思う、これが役立つ場合でも、私は知りません。いくつかのログ文を追加して、arrayListに実際に何が入っているのか、そしてアダプタが読み込み準備を整えているかを確認することができます。

+0

回答ありがとうございますが、それは役に立たないです。 – user3675515

関連する問題