ListViewItem как ListView
-
djdf_crash
- Сообщения: 4
- Зарегистрирован: 15 апр 2015, 15:42
ListViewItem как ListView
Здравствуйте всем. Подскажите, плиз, как создать ListView, что бы каждый элемент был ListView. Или киньте ссылкой, к сожалению google мне не смог помочь 
Re: ListViewItem как ListView
раз гугл ничего об этом не знает, значит это что-то не то.
Объясни, чего ты сделать собрался?
Объясни, чего ты сделать собрался?
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
-
djdf_crash
- Сообщения: 4
- Зарегистрирован: 15 апр 2015, 15:42
Re: ListViewItem как ListView
Есть ListView + Header. Каждый ListViewItem должен быть ListView. Я так понимаю это будет ListView в ListView. Могу скинуть ссылку на GitHub
там как бы всё работает но при скроллинге подтормаживает. Вот я и думаю, может не правильно организовано...
Re: ListViewItem как ListView
да картинку покажи - для чего это?
скрол будет глючить, потому что листвью для этого не предназначен.
скрол будет глючить, потому что листвью для этого не предназначен.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
-
djdf_crash
- Сообщения: 4
- Зарегистрирован: 15 апр 2015, 15:42
Re: ListViewItem как ListView
Это расписание.Foenix писал(а):да картинку покажи - для чего это?
скрол будет глючить, потому что листвью для этого не предназначен.
https://drive.google.com/file/d/0B95oCk ... sp=sharing
подскажи что лучше использовать для этих целей?
попробую описать проблему полностью:
Создаю листвью, устанавливаю на него свой адаптер унаследованный от арейадаптера, в нем переопределяю метод гетвью, в нём нахожу ещё один листвью для него устанавливаю адаптер, а в этом адаптере уже устанавливаю все значения через метод findViewById() (по другому не могу найти View, так как в метод getView() почему-то не передается convertView)
Re: ListViewItem как ListView
где ты тут видишь листвью в листвью? это единый листвью. Один.
Я бы делала так.
Дни недели расположила бы на вьюпейджере - так удобно листать дни календаря, а не скопом как у тебя тут.
А заголовки или перерывы что там тебя на бледноголубом фоне - делаешь так.
все расписание это курсор один, где будут данные и еще один столбец (или что-то такое в других стобцах) чтоб отличить перерыв это или нет.
Делаешь кастомный листвью где два лэйаута будут - один белый с черным текстом, а под ним голубой (и делаешь ему visible=gone) и в методе getView кастомного адаптера определяешь - если это перерыв, то второй лэйаут делаешь видимым, если не перерыв, то видим первый лэйаут.
Все очень просто.
Если тебе нужно единый листвью - то точно так же, только будут три типа лэйаутов.
Я бы делала так.
Дни недели расположила бы на вьюпейджере - так удобно листать дни календаря, а не скопом как у тебя тут.
А заголовки или перерывы что там тебя на бледноголубом фоне - делаешь так.
все расписание это курсор один, где будут данные и еще один столбец (или что-то такое в других стобцах) чтоб отличить перерыв это или нет.
Делаешь кастомный листвью где два лэйаута будут - один белый с черным текстом, а под ним голубой (и делаешь ему visible=gone) и в методе getView кастомного адаптера определяешь - если это перерыв, то второй лэйаут делаешь видимым, если не перерыв, то видим первый лэйаут.
Все очень просто.
Если тебе нужно единый листвью - то точно так же, только будут три типа лэйаутов.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: ListViewItem как ListView
если ты совсем начинающий, я еще не упомянула, что тебе нужна база данных, уметь делать к ней запросы.. советую уроки читать - знаний нужна масса. Но само приложение несложное.
И задавай вопросы тут , а не в личку.
И задавай вопросы тут , а не в личку.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
-
djdf_crash
- Сообщения: 4
- Зарегистрирован: 15 апр 2015, 15:42
Re: ListViewItem как ListView
Ок. Там уже готовый проект, я хотел его как то оптимизировать (убрать "тормоза" при скроллинге). Понял, что причина "тормозов", через многократный вызов метода findViewById(), каждый раз при прокрутке.
Ниже код второго адаптера наследование от BaseAdapter . Здесь по каким-то причинам convertView постоянно равно NULL. Тоисть не мого прикрутить вспомогательный класс ViewHolder.
Данные получаю через JSON.
Ниже код второго адаптера наследование от BaseAdapter . Здесь по каким-то причинам convertView постоянно равно NULL. Тоисть не мого прикрутить вспомогательный класс ViewHolder.
Код: Выделить всё
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
String[] breakTimes = mContext.getResources().getStringArray(R.array.break_time);
String[] pairTimes = mContext.getResources().getStringArray(R.array.pair_time);
List<String> matches = new ArrayList<>();
Matcher m = Pattern.compile("\\d{1,2}").matcher(pairTimes[position]);
while (m.find()) {
matches.add(m.group(0));
}
Calendar c = Calendar.getInstance(TimeZone.getDefault());
c.set(Calendar.HOUR_OF_DAY, Integer.valueOf(matches.get(0)));
c.set(Calendar.MINUTE, Integer.valueOf(matches.get(1)));
c.set(Calendar.SECOND, 0);
Date dateFrom = c.getTime();
c.set(Calendar.HOUR_OF_DAY, Integer.valueOf(matches.get(2)));
c.set(Calendar.MINUTE, Integer.valueOf(matches.get(3)));
Date dateTo = c.getTime();
c = Calendar.getInstance();
Date currTime = new Date(c.getTimeInMillis());
Calendar cal = Calendar.getInstance();
cal.setTime(mDate);
boolean current = (currTime.after(dateFrom) && currTime.before(dateTo) && (c.get(Calendar.DAY_OF_WEEK) == cal.get(Calendar.DAY_OF_WEEK)));
if (getItemViewType(position) == TYPE_PAIR) {
Lesson lesson = (Lesson) mData.get(position).second;
view = mInflater.inflate(R.layout.ssked_pair_list_item, null, false);
if (current){
view.findViewById(R.id.pair_time_text).setBackgroundColor(Strings.COLOR_ACTIVE_PAIR);
view.findViewById(R.id.pair_aud_text).setBackgroundColor(Strings.COLOR_ACTIVE_PAIR);
view.findViewById(R.id.pair_discip_text).setBackgroundColor(Strings.COLOR_ACTIVE_PAIR);
view.findViewById(R.id.pair_type_text).setBackgroundColor(Strings.COLOR_ACTIVE_PAIR);
view.findViewById(R.id.pair_number_text).setBackgroundColor(Strings.COLOR_ACTIVE_PAIR);
((TextView)view.findViewById(R.id.pair_number_text)).setTextColor(Color.WHITE);
((TextView)view.findViewById(R.id.pair_time_text)).setTextColor(Color.WHITE);
((TextView)view.findViewById(R.id.pair_aud_text)).setTextColor(Color.WHITE);
((TextView)view.findViewById(R.id.pair_discip_text)).setTextColor(Color.WHITE);
((TextView)view.findViewById(R.id.pair_type_text)).setTextColor(Color.WHITE);
}
((TextView) view.findViewById(R.id.pair_time_text)).setText(pairTimes[position]);
((TextView) view.findViewById(R.id.pair_aud_text)).setText(lesson.place);
((TextView) view.findViewById(R.id.pair_discip_text)).setText(lesson.name);
((TextView) view.findViewById(R.id.pair_number_text)).setText(String.valueOf(mData.get(position).first));
((TextView) view.findViewById(R.id.pair_type_text)).setText(lesson.type);
((TextView) view.findViewById(R.id.break_time_text)).setText(breakTimes[position]);
if (position == 5) view.findViewById(R.id.breakLayout).setVisibility(View.GONE);
} else {
view = mInflater.inflate(R.layout.ssked_no_pair_list_item, null, false);
if (current){
view.findViewById(R.id.pair_time_text).setBackgroundColor(Strings.COLOR_ACTIVE_NOPAIR);
view.findViewById(R.id.pair_nopair_text).setBackgroundColor(Strings.COLOR_ACTIVE_NOPAIR);
view.findViewById(R.id.pair_number_text).setBackgroundColor(Strings.COLOR_ACTIVE_NOPAIR);
((TextView)view.findViewById(R.id.pair_number_text)).setTextColor(Color.WHITE);
((TextView)view.findViewById(R.id.pair_time_text)).setTextColor(Color.WHITE);
((TextView)view.findViewById(R.id.pair_nopair_text)).setTextColor(Color.WHITE);
}
((TextView) view.findViewById(R.id.pair_time_text)).setText(pairTimes[position]);
((TextView) view.findViewById(R.id.pair_number_text)).setText(String.valueOf(position + 1));
((TextView) view.findViewById(R.id.break_time_text)).setText(breakTimes[position]);
if (position == 5) view.findViewById(R.id.breakLayout).setVisibility(View.GONE);
}
return view;
}