Как динамически добавить представление нижнего колонтитула

Я создал ListView и добавил заголовок с addHeaderView, затем я назвал setListAdapter в своем ListActivity. Любая идея, как я могу динамически addFooterView после того, как я позвонил setListAdapter?

ОТВЕТ: Я добавил как представление заголовка, так и представление нижнего колонтитула (фактически кнопки) в свое представление списка, но оба они были заключены в FrameLayout с использованием высоты wrap_content, а затем, когда мне не нужно отображать кнопку заголовка, я просто setVisibility( View.GONE) и FrameLayout переносится на 0 высоты и визуально не виден (тот же эффект, как если бы я вызывал removeHeaderView), и если мне нужно показать его снова, я устанавливаюVisibilty(View.VISIBLE), и он отображается (тот же эффект, что и addHeaderView - что, конечно, невозможно после вызова адаптера списка настроек)

Обсуждается здесь: Скрыть представление нижнего колонтитула в ListView?


person webaloman    schedule 25.09.2011    source источник
comment
посмотрите на мой отредактированный ответ. попробуйте это и дайте мне знать, что произойдет.   -  person user370305    schedule 25.09.2011


Ответы (2)


Вы должны сделать так

View header = (View)getLayoutInflater().inflate(R.layout.header,null);

SimpleAdapter myAdapter=new SimpleAdapter(this,myList,R.layout.transactionvalues,
new String[] {"transaction_date_time","user_name","site_name","machine_name"},new int[] {R.id.Date_Time,R.id.User,R.id.Site,R.id.Machine});

if(header == null){
    lst.removeHeaderView(header);
}else
{
    lst.addHeaderView(header,null,false);
}

lst.setAdapter(myAdapter);
person Sachin Gurnani    schedule 18.01.2012

person    schedule
comment
09–25 18:43:52.953: ОШИБКА/AndroidRuntime (229): java.lang.IllegalStateException: невозможно добавить представление нижнего колонтитула в список — setAdapter уже был вызван. - person webaloman; 25.09.2011
comment
@webaloman - посмотри мой отредактированный ответ. попробуйте это и дайте мне знать, что произойдет. - person user370305; 25.09.2011
comment
Просто помните, что нижний колонтитул и верхний колонтитул также индексируются как элемент списка. Итак, если вы нажмете на первый элемент в списке под нижним колонтитулом, индекс этого элемента будет равен 1, а не 0. - person ; 18.01.2012