2015-03-16 2 views
1

У меня есть Viewpager с 2 страницами, на странице 1 Я заполняю форму и прокручиваю страницу 2, у которой есть expandableList. Я использую пользовательский адаптер, как показано ниже.Пользовательский расширяемый BaseExpandableListAdapter getGroupView или getChildView никогда не набирается

Я включил расширяемый listview и еще одну кнопку внутри макета.

Когда я сажусь на эту новую страницу, я вижу пустой макет вместе с кнопкой, расширяемый список никогда не появляется.

Я проверил и выяснил, что getGroupCount возвращает размер, эквивалентный размеру данных arrayList. Таким образом, проблема не является пустой.

При дальнейших анализах я выяснил, что getGroupView, а также getChildView никогда не вызывается, я добавил несколько операторов журнала для отладки в этих методах, они никогда не печатаются. Однако вызывается конструктор, так что getGroupCoun возвращает правильные значения. Является ли моя реализация правильной?

public class FareStageExpandableListAdapter extends BaseExpandableListAdapter 

{ 
private Context context; 
private LayoutInflater inflater; 
private ArrayList<TripTimings> data; 
private SimpleDateFormat formatter; 
private EditText fareField; 
private TextView headerText; 
private TextView childText; 

public FareStageExpandableListAdapter(Context context, 
     ArrayList<TripTimings> data) 
{ 
    Log.d("FareStageExADapter", "Constructor called"); 
    this.context = context; 
    this.inflater = (LayoutInflater) context 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    this.data = data; 
    this.formatter = new SimpleDateFormat("HH:mm"); 

} 

@Override 
public int getGroupCount() 
{ 
    return data.size(); 
} 

@Override 
public int getChildrenCount(int groupPosition) 
{ 
    return data.size() - 1 - groupPosition; 
} 

@Override 
public Object getGroup(int groupPosition) 
{ 
    return data.get(groupPosition); 
} 

@Override 
public Object getChild(int groupPosition, int childPosition) 
{ 
    return data.get(groupPosition + childPosition); 
} 

@Override 
public long getGroupId(int groupPosition) 
{ 
    return data.get(groupPosition).hashCode(); 
} 

@Override 
public long getChildId(int groupPosition, int childPosition) 
{ 
    return data.get(groupPosition + childPosition).hashCode() + 5; 
} 

@Override 
public boolean hasStableIds() 
{ 
    // TODO Auto-generated method stub 
    return true; 
} 

@Override 
public View getGroupView(int groupPosition, boolean isExpanded, 
     View convertView, ViewGroup parentView) 
{ 
    TripTimings parent = data.get(groupPosition); 
    if (convertView == null) 
    { 
     convertView = inflater.inflate(R.layout.fareadd_expanded_parent, 
       parentView, false); 
    } 
    headerText = ((TextView) convertView.findViewById(R.id.originText)); 

    Log.d("Setting header text ", parent.getStop().getStop_name()); 
    headerText.setText(parent.getStop().getStop_name()); 
    return convertView; 
} 

@Override 
public View getChildView(int groupPosition, int childPosition, 
     boolean isLastChild, View convertView, ViewGroup childView) 
{ 
    final TripTimings child = data.get(groupPosition + childPosition); 
    if (convertView == null) 
    { 
     convertView = inflater.inflate(R.layout.fareadd_expanded_child, 
       childView, false); 
    } 
    childText = ((TextView) convertView.findViewById(R.id.destinationText)); 

    Log.d("Setting child text ", child.getStop().getStop_name()); 
    childText.setText(child.getStop().getStop_name()); 

    return convertView; 
} 

@Override 
public boolean isChildSelectable(int groupPosition, int childPosition) 
{ 
    // TODO Auto-generated method stub 
    return false; 
} 

}

ответ

1

Это то, что происходит, когда вы лишены сна. В коде нет ничего плохого, за исключением того, что адаптер не был добавлен в список expandablelistview

Смежные вопросы