嗯,我發現了一個解決方案,我的問題,在一天結束時並不那麼複雜。如果有人遇到同樣的情況,我會盡量總結一下。
首先,你將不得不爲你的ExpandableListView
創建一個自定義適配器。我的前一個RecyclerView
有一個自定義適配器,它使用了ViewHolder
模式,這讓我感到困惑。
This示例實際上對了解如何實現自定義適配器非常有用。重寫的重要方法是getChildView
。在該方法中,構建了整個子視圖。
@Override
public View getChildView(int listPosition, final int expandedListPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
final MenuItem item = (MenuItem) getChild(listPosition, expandedListPosition);
if (convertView == null) {
LayoutInflater layoutInflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.menu_item, null);
}
// Save final reference to be able to access it in inner classes
final View finalConvertView = convertView;
// Set the item name
TextView itemName = (TextView) convertView.findViewById(R.id.item_menu_name);
itemName.setText(item.getName());
// Set item price
TextView itemPrice = (TextView) convertView.findViewById(R.id.item_menu_price);
itemPrice.setText(item.getFormattedPrice());
這不是完整的代碼,但是你可以看到它的剛開的意見在menu_item.xml
佈局和我用Android data bingind之前填充它們:-)
的問題,但我不不知道如何在沒有ViewHolder
的情況下使用它。