package com.biznow.ordernow.adapter; import java.util.List; import android.content.Context; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.LinearLayout; import android.widget.TextView; import com.data.menu.CustomerOrderWrapper; import com.biznow.ordernow.ApplicationState; import com.biznow.ordernow.R; import com.biznow.ordernow.model.MyOrderItem; import com.biznow.ordernow.model.OrderNowConstants; import com.biznow.ordernow.model.OrderStatus; public class MyParentOrderAdapter extends ArrayAdapter<CustomerOrderWrapper> { private static final String TEXT_COMMENT = "TextComment"; private List<CustomerOrderWrapper> subOrderList; public MyParentOrderAdapter(Context context, List<CustomerOrderWrapper> subOrderList) { super(context, R.layout.my_parent_order, subOrderList); this.subOrderList = subOrderList; } @Override public View getView(int position, View convertView, final ViewGroup parent) { if (convertView == null) { LayoutInflater vi = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = vi.inflate(R.layout.my_parent_order, null); } TextView subOrderNoteView = (TextView) convertView.findViewById(R.id.subOrderNote); //Implement a List View inside a List View Example LinearLayout list = (LinearLayout) convertView.findViewById(R.id.subOrderItemListLinearLayout); list.removeAllViews(); CustomerOrderWrapper customerOrderWrapper = subOrderList.get(position); for (MyOrderItem myOrderItem : customerOrderWrapper.getMyOrderItemList()) { OrderStatus orderStatus = myOrderItem.getItemStatus(); LayoutInflater li = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); View line = li.inflate(R.layout.my_parent_order_item, null); TextView itemStatus = (TextView) line.findViewById(R.id.itemStatus); itemStatus.setText(orderStatus.getSymbol()); TextView itemName = (TextView) line.findViewById(R.id.parentItemName); TextView itemNote = (TextView) line.findViewById(R.id.parentItemNote); final TextView quantity = (TextView) line.findViewById(R.id.parentQuantity); final TextView itemTotalPrice = (TextView) line.findViewById(R.id.parentItemTotalPrice); String orderItemName = myOrderItem.getFoodMenuItem().getItemName(); String orderItemNote = null; if (myOrderItem.getMetaData() != null) { orderItemNote = myOrderItem.getMetaData().get(TEXT_COMMENT); } Float orderItemQuantity = myOrderItem.getQuantity(); Float orderItemPrice = myOrderItem.getFoodMenuItem().getItemPrice(); itemName.setText(orderItemName); if(orderItemNote != null) { itemNote.setText(orderItemNote); } else { itemNote.setVisibility(View.GONE); itemName.setGravity(Gravity.CENTER_VERTICAL); } quantity.setText(Float.toString(orderItemQuantity)); itemTotalPrice.setText(OrderNowConstants.INDIAN_RUPEE_UNICODE + " " + Float.toString(orderItemPrice * orderItemQuantity)); list.addView(line); } ApplicationState applicationContext = (ApplicationState) getContext().getApplicationContext(); String subOrderNote = customerOrderWrapper.getCustomerOrder(applicationContext).getOrderNote(); if(subOrderNote != null) { subOrderNoteView.setText(subOrderNote); } else { subOrderNoteView.setVisibility(View.GONE); } return convertView; } }