Форум программистов, компьютерный форум CyberForum.ru

Две вьюшки для RecyclerView - Android

Восстановить пароль Регистрация
Другие темы раздела
Android Программирования на Android http://www.cyberforum.ru/android-dev/thread1696916.html
У меня такая проблема, я не могу создать приложение на андроид , тк не знаю языка программирования .Выручайте.
Android выручайте ошибки подскажите что с этим делать. Exception in thread "png-cruncher_5" java.lang.RuntimeException: Timed out while waiting for slave aapt process, make sure the aapt execute at C:\Users\adm\AppData\Local\Android\sdk\build-tools\23.0.2\aapt.exe can run successfully (some anti-virus may block it) or try setting environment variable SLAVE_AAPT_TIMEOUT to a value bigger than 5 seconds at... http://www.cyberforum.ru/android-dev/thread1696864.html
TextView бд Android
Подскажите можно ли на прямую вызвать из бд в TextView текст?
Android Подключение к удаленной бд MySQL в Android
Необходимо подключиться к внешней БД MySQL в Android приложении, которое бы использовало ресурсы готового сервиса, но без API. Знаю, что это нехорошо, но просто стоит такая задача. Как это можно сделать?
Android Стоит ли писать Android-приложения в Eclipse? http://www.cyberforum.ru/android-dev/thread1696666.html
Всем добрый день! Помогите, пожалуйста, советом. В гугле я не смог найти ответ на свой вопрос. Суть проблемы. Я попытался начать изучение под Android и столкнулся с большой проблемой. Мой комп не тянет Android Studio. И Genymotion мне также не помог. Скажите, пожалуйста, есть ли смысл писать программы в Eclipse (комп потихоньку, но тянет) или сейчас такой вариант сильно устарел и лучше...
Android Android studio как перенести на другой жёсткий диск как перенести на другой жёсткий диск программу android studio не хватило место на жёстком решил перенести в другой раздел но после открытия программа начала ругатся как можно исправить подробнее

Показать сообщение отдельно
omuradil
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 77
28.03.2016, 15:53     Две вьюшки для RecyclerView
У меня проблема в том, что нужно создать лист в котором 2 вьюшки, то есть первый Итем как Header идет, а второй динамически увеличивается. Сперва думал первый сделать как обычный блок а второй в `RecyclerView`, но почему-то мне показалось это неправильным. Так вот решил сделать на `RecyclerView` и в инете покапался и нашел один метод. Но почему то пустой экран.

Что мне нужно:

Две вьюшки для RecyclerView

У них один и тот же модель тоесть,
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
    public class TicketObjects {
 
    private String departCity;
    private String departAirport;
    private String arriveCity;
    private String arriveAirport;
 
    private String departCode;
    private String departTime;
    private String departDate;
    private String arriveCode;
    private String arriveTime;
    private String arriveDate;
    private String transferCity;
    private String flyDuration;
    private String ticketPrice;
    private int airlineLogo;
    private String flight;
 
    public TicketObjects(String departCity, String departAirport, String arriveCity, String arriveAirport,
                         String departCode, String departTime, String departDate,
                         String arriveCode, String arriveTime, String arriveDate,
                         String transferCity, String flyDuration, String ticketPrice, int airlineLogo, String flight) {
 
 
        this.departCity = departCity;
        this.departAirport = departAirport;
        this.arriveCity = arriveCity;
        this.arriveAirport = arriveAirport;
 
        this.departCode = departCode;
        this.departTime = departTime;
        this.departDate = departDate;
        this.arriveCode = arriveCode;
        this.arriveTime = arriveTime;
        this.arriveDate = arriveDate;
        this.transferCity = transferCity;
        this.flyDuration = flyDuration.trim().replaceFirst("^[0]{1}", "").replace(":", " h ") + " m";
        this.ticketPrice = ticketPrice;
        this.airlineLogo = airlineLogo;
        this.flight = flight;
    }
**и так далее...
Вот мой адаптер:**
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
    package kz.ticketdetail;
 
    import android.content.Context;
    import android.support.v7.widget.RecyclerView;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ImageView;
    import android.widget.TextView;
 
    import java.util.List;
 
    public class DetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
    private static final int TYPE_HEADER = 0;
    private static final int TYPE_ITEM = 1;
 
    List<TicketObjects> ticketItems;
    List<TicketObjects> ticketsHeader;
    LayoutInflater layoutInflater;
    Context context;
 
    public DetailsAdapter(Context context, List<TicketObjects> ticketItems, List<TicketObjects> ticketsHeader){
        this.context = context;
        layoutInflater = LayoutInflater.from(context);
        this.ticketItems = ticketItems;
        this.ticketsHeader = ticketsHeader;
    }
 
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
 
        if(viewType == TYPE_HEADER)
        {
            View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.ticket_details_header_item, parent, false);
            return  new DetailsHeader(v);
        }
        else if(viewType == TYPE_ITEM)
        {
            View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.ticket_details_item, parent, false);
            return new DetailsItem(v);
        }
        return null;
    }
 
    private TicketObjects getItem(int position)
    {
        return ticketItems.get(position);
    }
 
    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int i) {
 
 
        if(holder instanceof DetailsHeader)
        {
            TicketObjects currentItem = getItem(i);
            DetailsHeader headerItem = (DetailsHeader)holder;
                
    headerItem.detTotalDuration.setText(currentItem.getFlyDuration());
            headerItem.detDepartTime.setText(currentItem.getDepartTime());
            headerItem.detDepartDate.setText(currentItem.getDepartDate());
            headerItem.detArriveTime.setText(currentItem.getArriveTime());
            headerItem.detArriveDate.setText(currentItem.getArriveDate());
            headerItem.depDepartCity.setText(currentItem.getDepartCity());
            headerItem.detDepartAirport.setText(currentItem.getDepartAirport());
            headerItem.detArriveCity.setText(currentItem.getArriveCity());
            headerItem.detArriveAirport.setText(currentItem.getArriveAirport());
 
            headerItem.detFlight.setText(currentItem.getFlight());
            headerItem.airlineLogo.setImageResource(currentItem.getAirlineLogo());
 
 
        }
 
        if(holder instanceof DetailsItem)
        {
            TicketObjects currentItem = getItem(i);
            DetailsItem detailsItem = (DetailsItem)holder;
            detailsItem.detTotalDuration.setText(currentItem.getFlyDuration());
            detailsItem.detDepartTime.setText(currentItem.getDepartTime());
            detailsItem.detDepartDate.setText(currentItem.getDepartDate());
            detailsItem.detArriveTime.setText(currentItem.getArriveTime());
            detailsItem.detArriveDate.setText(currentItem.getArriveDate());
            detailsItem.depDepartCity.setText(currentItem.getDepartCity());
            detailsItem.detDepartAirport.setText(currentItem.getDepartAirport());
            detailsItem.detArriveCity.setText(currentItem.getArriveCity());
              detailsItem.detArriveAirport.setText(currentItem.getArriveAirport());
 
            detailsItem.detFlight.setText(currentItem.getFlight());
            detailsItem.airlineLogo.setImageResource(currentItem.getAirlineLogo());
        }
 
    }
 
    @Override
    public int getItemViewType(int position) {
        if(isPositionHeader(position))
            return TYPE_HEADER;
        return TYPE_ITEM;
    }
 
    private boolean isPositionHeader(int position)
    {
        return position == 0;
    }
 
    @Override
    public int getItemCount() {
        return ticketItems.size();
    }
 
    class DetailsHeader extends RecyclerView.ViewHolder{
 
        TextView detTitleArriveCity;
        TextView detTitleDepartCity;
        TextView detTotalDuration;
 
        TextView detDepartTime;
        TextView detDepartDate;
        TextView detArriveTime;
        TextView detArriveDate;
        TextView depDepartCity;
        TextView detDepartAirport;
        TextView detArriveCity;
        TextView detArriveAirport;
        TextView detFlight;
 
        ImageView airlineLogo;
 
        public DetailsHeader(View itemView) {
            super(itemView);
 
            this.detTitleDepartCity = (TextView) itemView.findViewById(R.id.detTitleDepartCity);
            this.detTitleArriveCity = (TextView) itemView.findViewById(R.id.detTitleArriveCity);
            this.detTotalDuration = (TextView) itemView.findViewById(R.id.detTotalDuration);
 
            this.detDepartTime = (TextView) itemView.findViewById(R.id.detDepartTime);
            this.detDepartDate = (TextView) itemView.findViewById(R.id.detDepartDate);
            this.detArriveTime = (TextView) itemView.findViewById(R.id.detArriveTime);
            this.detArriveDate = (TextView) itemView.findViewById(R.id.detArriveDate);
            this.depDepartCity = (TextView) itemView.findViewById(R.id.depDepartCity);
            this.detDepartAirport = (TextView) itemView.findViewById(R.id.detDepartAirport);
            this.detArriveCity = (TextView) itemView.findViewById(R.id.detArriveCity);
            this.detArriveAirport = (TextView) itemView.findViewById(R.id.detArriveAirport);
            this.detFlight = (TextView) itemView.findViewById(R.id.detFlight);
 
            this.airlineLogo = (ImageView) itemView.findViewById(R.id.detAirportLogo);
        }
    }
 
    class DetailsItem extends RecyclerView.ViewHolder{
 
        TextView transferCity;
        TextView detTotalDuration;
 
        TextView detDepartTime;
        TextView detDepartDate;
        TextView detArriveTime;
        TextView detArriveDate;
        TextView depDepartCity;
        TextView detDepartAirport;
        TextView detArriveCity;
        TextView detArriveAirport;
        TextView detFlight;
 
        ImageView airlineLogo;
 
        public DetailsItem(View itemView) {
            super(itemView);
 
            this.transferCity = (TextView) itemView.findViewById(R.id.tvTransferCity);
            this.detTotalDuration = (TextView) itemView.findViewById(R.id.detTotalDuration);
 
            this.detDepartTime = (TextView) itemView.findViewById(R.id.detDepartTime);
            this.detDepartDate = (TextView) itemView.findViewById(R.id.detDepartDate);
            this.detArriveTime = (TextView) itemView.findViewById(R.id.detArriveTime);
            this.detArriveDate = (TextView) itemView.findViewById(R.id.detArriveDate);
            this.depDepartCity = (TextView) itemView.findViewById(R.id.depDepartCity);
            this.detDepartAirport = (TextView) itemView.findViewById(R.id.detDepartAirport);
            this.detArriveCity = (TextView) itemView.findViewById(R.id.detArriveCity);
            this.detArriveAirport = (TextView) itemView.findViewById(R.id.detArriveAirport);
            this.detFlight = (TextView) itemView.findViewById(R.id.detFlight);
 
            this.airlineLogo = (ImageView) itemView.findViewById(R.id.detAirportLogo);
        }
      }
    }
**Мой главный Активити:**
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
    RecyclerView transferRecycler;
 
    private List<TicketObjects> transferList;
    private DetailsAdapter detailsAdapter;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ticket_details);
 
        transferRecycler = (RecyclerView) findViewById(R.id.transferRecycler);
        transferRecycler.setLayoutManager(new LinearLayoutManager(this));
 
        DetailsAdapter adapter = new DetailsAdapter(getApplicationContext(), getHeaderItem(), getDetailItem());
        transferRecycler.setAdapter(adapter);
    }
 
    public ArrayList<TicketObjects> getHeaderItem()
    {
 
        ArrayList<TicketObjects> headeritem = new ArrayList<>();
        headeritem.add(new TicketObjects("Москва", "Шереметьево", "Нью-йорк", "Джон кеннеди", "SFO","13:45","16.09.2015","JKD","13:45","16.09.2015","Анкара", "1ч 15мин","15000", R.drawable.logo_flyduba, "Рейс: 543"));
 
        return headeritem;
    }
 
    public  List<TicketObjects> getDetailItem()
    {
        ArrayList<TicketObjects> listItems = new ArrayList<>();
 
    //данные просто пример
 
        listItems.add(new TicketObjects("Москва", "Шереметьево", "Нью-йорк", "Джон кеннеди", "SFO","13:45","16.09.2015","JKD","13:45","16.09.2015","Almaty", "1ч 15мин","15000", R.drawable.logo_flyduba, "Рейс: 543"));
        listItems.add(new TicketObjects("Москва", "Шереметьево", "Нью-йорк", "Джон кеннеди", "SFO","13:45","16.09.2015","JKD","13:45","16.09.2015","Almaty", "1ч 15мин","15000", R.drawable.logo_flyduba, "Рейс: 543"));
        listItems.add(new TicketObjects("Москва", "Шереметьево", "Нью-йорк", "Джон кеннеди", "SFO","13:45","16.09.2015","JKD","13:45","16.09.2015","Almaty", "1ч 15мин","15000", R.drawable.logo_flyduba, "Рейс: 543"));
 
        return listItems;
    }
У меня просто белый экран, никаких ошибок. Да и мне кажется я просто все неправильно делаю. Подскажите пожалуйста, как сделать такой список?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru