2012-04-24 2 views
0

Я столкнулся с очень странным явлением. Я использую ViewPager из пакета совместимости для отображения профилей.ListView внутри ViewPager - Элементы в ListView сохраняются пустым

Каждый профиль - это просто ListView с настраиваемыми элементами в нем. Каждый элемент имеет два состояния:

  1. Eсть данные - отобразить его
  2. Там нет данных - Дисплей места держателя

Каждый раз, когда я красть между профилями I сбросом данных внутри объектов элемента. Когда я удаляю REST-Calls и просто оставляю элемент профиля пустым - в котором должен отображаться заполнитель - все элементы остаются пустыми.

В чем может быть проблема?

EDIT:/

Вот как я установил текущий элемент в ListView. Кажется, что в файле PageViewAdapter все нормально, если я использую статический контент, все работает отлично.

final TextView lblTitle = (TextView)convertView.findViewById(R.id.lblTitle); 
    final LinearLayout llContent = (LinearLayout)convertView.findViewById(R.id.llContent); 
    final ProfileItem item = getItem(userPosition); 


    String title = item.getTitle(); 
    if(title == null || title.equals("")) { 
     lblTitle.setVisibility(View.GONE); 
    } else { 
     lblTitle.setText(item.getTitle()); 
    } 

    if(item.getContent().getParent() != null) { 
     ((ViewGroup)item.getContent().getParent()).removeAllViews(); 
    } 

    llContent.removeAllViews(); 
    llContent.addView(item.getContent()); 

Элементы, выглядят очень похожи, как что:

@Override 
public View getContent() { 
    if(isTextEmpty()) { 
     return noTextTherePlaceholder; 
    } else { 
     return view; 
    } 
} 

Эффект сохраняет то же самое, даже если я вернусь только просмотреть или noTextTherePlaceholder.

Если я создам новые представления, такие как TextView в методе getView, все работает так, как ожидалось.

+0

Вы должны были показать нам какой-то код, не можете видеть его здесь. Код вашего адаптера ViewPager представляет особый интерес. –

ответ

0

С плеером просмотра вы должны получить все свои данные в своем Activity.onCreate, а затем использовать эти данные в своем адаптере ViewPagers onInstantiateItem.

+0

Это неправда. Вы можете редактировать контент, когда захотите, вам просто нужно получить правильную ссылку на просмотр, чтобы вызвать недействительность, когда что-то изменилось. – schlingel

+0

Конечно, я имел в виду, что ваши данные должны как-то сохраняться в вашем объекте активности. Тем не менее, все еще ждущий ваш код создания. –

+0

Это невозможно, потому что я должен получить его через REST в первый раз. Было бы очень неприятно, если бы приложение должно было дождаться завершения вызова, прежде чем показывать следующую страницу. Код доставлен. – schlingel

Смежные вопросы