ArrayAdapter のサブクラスで getView が呼び出される際、コンストラクタで渡したArrayList のsize に関わらず position は 0 のままで、 ListViewArrayList の2つ目以降のアイテムのViewが渡されません。

レイアウトは ListView1 が ListView2 を持つ入れ子の構造で、 ListView1 は問題なく動作しますが、 ListView2 は上記のような状態です。

private class DayAdapter extends ArrayAdapter<DayData> {        
    private LayoutInflater inflater;
    private class ViewHolder{
        TextView textDate;
        ListView listItem;
        TextView textBalance;

        ViewHolder(View view){
            this.textDate = (TextView) view.findViewById(R.id.txtDate);
            this.listItem = (ListView) view.findViewById(R.id.lstItem);
            this.textBalance = (TextView) view.findViewById(R.id.txtBalance);
        }
    } 

    public DayAdapter(Context context, int textViewResourceId, List<DayData> objects) {
        super(context, textViewResourceId, objects);
        this.inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    @Override
    // こちらのpositionは更新される
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;

        if(convertView == null){
            convertView = inflater.inflate(R.layout.day, null);
            holder = new ViewHolder(convertView);
            convertView.setTag(holder);
        }else{
            holder = (ViewHolder)convertView.getTag();
        }

        DayData day = (DayData)getItem(position);
        if(day != null){            
            holder.textDate.setText(day.GetStringDate());
            holder.textBalance.setText(day.GetStringBalance());

            Log.d("ItemAdapter", "size="+day.GetItemList().size());
            ItemAdapter adapter = new ItemAdapter(Diary.this, 0, day.GetItemList());
            holder.listItem.setAdapter(adapter);
        }
        return convertView;
    }
}   

private class ItemAdapter extends ArrayAdapter<ItemData> {
    private LayoutInflater inflater;
    private class ViewHolder{
        TextView textDate;
        TextView textItem;
        TextView textPrice;

        ViewHolder(View view){
            this.textDate = (TextView) view.findViewById(R.id.textView1);
            this.textItem = (TextView) view.findViewById(R.id.textView2);
            this.textPrice = (TextView) view.findViewById(R.id.textView3);
        }
    }

    public ItemAdapter(Context context, int textViewResourceId, List<ItemData> objects) {
        super(context, textViewResourceId, objects);
        this.inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    @Override
    // こちらのpositionは0のまま
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if(convertView == null){
            convertView = inflater.inflate(R.layout.row, null);
            holder = new ViewHolder(convertView);
            convertView.setTag(holder);
        }else{
            holder = (ViewHolder)convertView.getTag();
        }

        Log.d("getView()", "position="+position);
        ItemData item = (ItemData)getItem(position);
        if(item != null){   
            holder.textDate.setText(item.GetStringDate());
            holder.textItem.setText(item.GetItem());  

            String sign = "";
            if(item.GetPrice() > 0) sign = "+";
            holder.textPrice.setText(sign + Integer.toString(item.GetPrice()) + "円");
        }
        return convertView;
    }
}

day.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

<TextView 
    android:textSize="16sp" 
    android:id="@+id/txtDate" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent"
    android:background="#003300"
    android:textColor="#FFFFFF" />

<ListView
    android:id="@+id/lstItem"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
</ListView>

<TextView 
    android:textSize="16sp" 
    android:id="@+id/txtBalance" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent"
    android:background="#33CC00" />

</LinearLayout>

row.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >

<TextView 
    android:textSize="16sp" 
    android:id="@+id/textView1" 
    android:layout_height="wrap_content" 
    android:layout_width="0dp"
    android:layout_weight="1"/> 
<TextView 
    android:textSize="16sp" 
    android:id="@+id/textView2" 
    android:layout_height="wrap_content" 
    android:layout_width="0dp"
    android:layout_weight="1"/>
<TextView  
    android:textSize="16sp" 
    android:id="@+id/textView3" 
    android:layout_height="wrap_content" 
    android:layout_width="0dp"
    android:layout_weight="1"/>

</LinearLayout>

この場合どのような原因が考えられるでしょうか?