I have 2 markup for ListView Aitems. So one is used as the Header for the ListView and the other in the rest. That is, the second Markup takes data from the adapter, where the fields are initialized accordingly.
My adapter:
public class DetailsAdapter extends ArrayAdapter<TicketObjects> { private int resource; private LayoutInflater inflater; private Context context; public DetailsAdapter ( Context ctx, int resourceId, List<TicketObjects> objects) { super( ctx, resourceId, objects ); resource = resourceId; inflater = LayoutInflater.from( ctx ); context=ctx; } @Override public View getView ( int position, View convertView, ViewGroup parent ) { convertView = (LinearLayout) inflater.inflate( resource, null ); TicketObjects ticketObjects = getItem( position ); TextView depTransferCity = (TextView) convertView.findViewById(R.id.tvTransferCity); TextView detDepartTime = (TextView) convertView.findViewById(R.id.detDepartTime); TextView detDepartDate = (TextView) convertView.findViewById(R.id.detDepartDate); TextView detArriveTime = (TextView) convertView.findViewById(R.id.detArriveTime); TextView detArriveDate = (TextView) convertView.findViewById(R.id.detArriveDate); TextView depDepartCity = (TextView) convertView.findViewById(R.id.depDepartCity); TextView detDepartAirport = (TextView) convertView.findViewById(R.id.detDepartAirport); TextView detArriveCity = (TextView) convertView.findViewById(R.id.detArriveCity); TextView detArriveAirport = (TextView) convertView.findViewById(R.id.detArriveAirport); TextView detFlight = (TextView) convertView.findViewById(R.id.detFlight); ImageView airlineLogo = (ImageView) convertView.findViewById(R.id.detAirportLogo); depTransferCity.setText(ticketObjects.getTransferCity()); detDepartTime.setText(ticketObjects.getDepartTime()); detDepartDate.setText(ticketObjects.getDepartDate()); detArriveTime.setText(ticketObjects.getArriveTime()); detArriveDate.setText(ticketObjects.getArriveDate()); depDepartCity.setText(ticketObjects.getDepartCity()); detDepartAirport.setText(ticketObjects.getDepartAirport()); detArriveCity.setText(ticketObjects.getArriveCity()); detArriveAirport.setText(ticketObjects.getArriveAirport()); detFlight.setText(ticketObjects.getFlight()); airlineLogo.setImageResource(ticketObjects.getAirlineLogo()); return convertView; } } MainActivity:
public class MainActivityextends Activity { private ListView lvDetails; private Context ctx; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.ticket_details); ctx=this; List<TicketObjects> ticketObjectses = new ArrayList<>(); ticketObjectses.add(new TicketObjects("Бишкек", "Манас", "Ош", "Аэропорт Оша", "FRU", "13:45", "16.09.2015", "OSS", "13:45", "16.09.2015", "Almaty", "1ч 15мин", "15000", R.drawable.logo_flyduba, "Рейс: 543")); ticketObjectses.add(new TicketObjects("Ош", "Аэропорт Оша", "Новосибирск", "Толмачево", "OSS", "15:43", "16.09.2015", "OVB", "17:45", "16.09.2015", "Astana", "1ч 25мин", "16000", R.drawable.logo_kazak, "Рейс: 543")); ticketObjectses.add(new TicketObjects("Алматы", "Алматы", "Москва", "Домодедово","ALA","11:54","16.09.2015","DME","12:44","16.09.2015","Novosibirsk", "2ч 15мин","13000", R.drawable.logo_pegasus_logo, "Рейс: 543")); lvDetails = ( ListView ) findViewById( R.id.lvDetails); ViewGroup header = (ViewGroup) getLayoutInflater().inflate(R.layout.ticket_details_header_item,lvDetails,false); lvDetails.addHeaderView(header); lvDetails.setAdapter(new DetailsAdapter(ctx, R.layout.ticket_details_item, ticketObjectses)); } } Header markup:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingBottom="@dimen/leftPadding" android:layout_below="@+id/line" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:id="@+id/linearLayout" android:background="@drawable/layouts_border"> <RelativeLayout android:layout_width="match_parent" android:layout_height="@dimen/iconsSize" android:layout_gravity="center_horizontal" android:padding="@dimen/leftPadding" android:background="#e8e8e8" android:layout_marginBottom="@dimen/rightPadding"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Бишкек" android:id="@+id/detTitleArriveCity" android:textColor="@color/otherTextColor" android:textSize="@dimen/mainLargeSize" android:textStyle="bold" android:layout_centerVertical="true" android:layout_toLeftOf="@+id/imageView" android:layout_toStartOf="@+id/imageView" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Нью-Йорк" android:id="@+id/detTitleArriveCity" android:textColor="@color/otherTextColor" android:textSize="@dimen/mainLargeSize" android:textStyle="bold" android:layout_centerVertical="true" android:layout_toRightOf="@+id/imageView" android:layout_toEndOf="@+id/imageView" /> <ImageView android:layout_width="@dimen/smallIconSize" android:layout_height="@dimen/smallIconSize" android:id="@+id/imageView" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:src="@drawable/icon_depart" android:padding="@dimen/rightPadding" android:layout_marginLeft="@dimen/rightPadding" android:layout_marginRight="@dimen/rightPadding" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="35ч 00м" android:id="@+id/detTotalDuration" android:textColor="@color/mainGreyColor" android:textSize="@dimen/mainSmallSize" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" /> </RelativeLayout> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingTop="@dimen/leftPadding" android:gravity="center_vertical" android:paddingLeft="@dimen/text_margin"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginRight="@dimen/rightPadding" android:layout_weight="3" android:gravity="center"> <ImageView android:layout_width="@dimen/smallIconSize" android:layout_height="@dimen/smallIconSize" android:id="@+id/imageView2" android:src="@drawable/from" android:layout_centerHorizontal="true" /> <ImageView android:layout_width="@dimen/smallIconSize" android:layout_height="@dimen/smallIconSize" android:id="@+id/imageView3" android:src="@drawable/punktir" android:layout_below="@+id/imageView2" android:layout_marginTop="-5dp" /> <ImageView android:layout_width="@dimen/smallIconSize" android:layout_height="@dimen/smallIconSize" android:id="@+id/imageView4" android:src="@drawable/to" android:layout_below="@+id/imageView3" android:layout_centerHorizontal="true" android:layout_marginTop="-5dp" /> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginRight="@dimen/rightPadding" android:layout_weight="2"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="09:50" android:id="@+id/detDepartTime" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:textColor="@color/otherTextColor" android:textSize="@dimen/mainLargeSize" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="12.06.2016" android:id="@+id/detDepartDate" android:layout_below="@+id/detDepartTime" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginBottom="@dimen/rightPadding" android:textColor="@color/mainGreyColor" android:textSize="@dimen/mainMiddleSize" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="11:40" android:id="@+id/detArriveTime" android:layout_below="@+id/detDepartDate" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:textColor="@color/otherTextColor" android:textSize="@dimen/mainLargeSize" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="13.06.2016" android:id="@+id/detArriveDate" android:layout_below="@+id/detArriveTime" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:textColor="@color/mainGreyColor" android:textSize="@dimen/mainMiddleSize" /> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginRight="@dimen/rightPadding" android:layout_weight="2" android:gravity="center"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Бишкек" android:id="@+id/depDepartCity" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:textColor="@color/otherTextColor" android:textSize="@dimen/mainLargeSize" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Манас" android:id="@+id/detDepartAirport" android:layout_below="@+id/depDepartCity" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginBottom="@dimen/rightPadding" android:textColor="@color/mainGreyColor" android:textSize="@dimen/mainMiddleSize" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Москва" android:id="@+id/detArriveCity" android:layout_below="@+id/detDepartAirport" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:textColor="@color/otherTextColor" android:textSize="@dimen/mainLargeSize" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Шереметьево" android:id="@+id/detArriveAirport" android:layout_below="@+id/detArriveCity" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:textColor="@color/mainGreyColor" android:textSize="@dimen/mainMiddleSize" /> </RelativeLayout> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="@dimen/stndHeight" android:layout_gravity="center_horizontal" android:paddingTop="@dimen/leftPadding"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="Рейс: AN565" android:id="@+id/detFlight" android:layout_weight="1" android:layout_gravity="center" android:gravity="center_horizontal" android:textColor="@color/otherTextColor" android:textSize="@dimen/mainLargeSize" /> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/detAirportLogo" android:src="@drawable/logo_flyduba" android:layout_weight="1" android:layout_gravity="center" android:gravity="center_horizontal"/> </LinearLayout> </LinearLayout> </RelativeLayout> Markup for the rest:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="@dimen/leftPadding" android:background="#e8e8e8" android:gravity="center_vertical"> <ImageView android:layout_width="@dimen/smallIconSize" android:layout_height="@dimen/smallIconSize" android:id="@+id/locIcon" android:src="@drawable/location" android:layout_weight="1" android:padding="@dimen/leftPadding" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="Пересадка:" android:id="@+id/textviewTransfer" android:layout_weight="3" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tvTransferCity" android:textColor="@color/otherTextColor" android:textSize="@dimen/mainLargeSize" android:layout_weight="3" /> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingTop="@dimen/leftPadding" android:gravity="center_vertical" android:paddingLeft="@dimen/text_margin" android:id="@+id/centerlayout"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginRight="@dimen/rightPadding" android:layout_weight="3" android:gravity="center"> <ImageView android:layout_width="@dimen/smallIconSize" android:layout_height="@dimen/smallIconSize" android:id="@+id/imageView2" android:src="@drawable/from" android:layout_centerHorizontal="true" /> <ImageView android:layout_width="@dimen/smallIconSize" android:layout_height="@dimen/smallIconSize" android:id="@+id/imageView3" android:src="@drawable/punktir" android:layout_below="@+id/imageView2" android:layout_marginTop="-5dp" /> <ImageView android:layout_width="@dimen/smallIconSize" android:layout_height="@dimen/smallIconSize" android:id="@+id/imageView4" android:src="@drawable/to" android:layout_below="@+id/imageView3" android:layout_centerHorizontal="true" android:layout_marginTop="-5dp" /> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginRight="@dimen/rightPadding" android:layout_weight="2"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="09:50" android:id="@+id/detDepartTime" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:textColor="@color/otherTextColor" android:textSize="@dimen/mainLargeSize" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="12.06.2016" android:id="@+id/detDepartDate" android:layout_below="@+id/detDepartTime" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginBottom="@dimen/rightPadding" android:textColor="@color/mainGreyColor" android:textSize="@dimen/mainMiddleSize" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="11:40" android:id="@+id/detArriveTime" android:layout_below="@+id/detDepartDate" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:textColor="@color/otherTextColor" android:textSize="@dimen/mainLargeSize" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="13.06.2016" android:id="@+id/detArriveDate" android:layout_below="@+id/detArriveTime" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:textColor="@color/mainGreyColor" android:textSize="@dimen/mainMiddleSize" /> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginRight="@dimen/rightPadding" android:layout_weight="2" android:gravity="center"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Бишкек" android:id="@+id/depDepartCity" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:textColor="@color/otherTextColor" android:textSize="@dimen/mainLargeSize" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Манас" android:id="@+id/detDepartAirport" android:layout_below="@+id/depDepartCity" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginBottom="@dimen/rightPadding" android:textColor="@color/mainGreyColor" android:textSize="@dimen/mainMiddleSize" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Москва" android:id="@+id/detArriveCity" android:layout_below="@+id/detDepartAirport" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:textColor="@color/otherTextColor" android:textSize="@dimen/mainLargeSize" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Шереметьево" android:id="@+id/detArriveAirport" android:layout_below="@+id/detArriveCity" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:textColor="@color/mainGreyColor" android:textSize="@dimen/mainMiddleSize" /> </RelativeLayout> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="@dimen/stndHeight" android:layout_gravity="center_horizontal" android:paddingTop="@dimen/leftPadding"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="Рейс: AN565" android:id="@+id/detFlight" android:layout_weight="1" android:layout_gravity="center" android:gravity="center_horizontal" android:textColor="@color/otherTextColor" android:textSize="@dimen/mainLargeSize" /> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/detAirportLogo" android:src="@drawable/logo_flyduba" android:layout_weight="1" android:layout_gravity="center" android:gravity="center_horizontal"/> </LinearLayout> </LinearLayout> Now, Heder’s markup displays nothing, that is, there is no data at all except TextView. And the second markup, as you see, is initialized in Adapter and it has data.
Question: How can a hider initialize and display data from an array that is in MainActivity? Where should Hider initialize?
