У меня есть действие ListView, для которого нужен нижний колонтитул к списку объектов так, чтобы можно было нажать его, и он загрузил бы больше объектов в список. Список поддерживается мой SimpleAdapter, поддержанный картой строк и прежде чем адаптер будет установлен, я делаю этот inorder для добавления нижнего колонтитула:
mInflater.inflate(R.layout.list_load_more_row, null);
TextView footer = (TextView) findViewById(R.id.loadMore);
getListView().addFooterView(footer);
setListAdapter(ListViewHelper.getAdapterForContentList(mContent, this));
Но я получаю это исключение в отладчике
java.lang. NullPointerException android.widget. ListView.clearRecycledState(ListView.java:489) android.widget. ListView.resetList(ListView.java:476) android.widget. ListView.setAdapter(ListView.java:417)
Что случилось и как я пошел бы о добавлении моего нижнего колонтитула к списку?
[РЕДАКТИРОВАНИЕ] действие использует list_load_more_row.xml:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/loadMore"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="17sp"
android:textStyle="bold"
android:textColor="#000000"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:gravity="center_horizontal|center_vertical"
android:text="@string/hello" />
Хорошо Iv нашел решение моей проблемы, если я сделаю вот так, то все будет работать как надо:
View view = mInflater.inflate(R.layout.list_load_more_row, null);
TextView footer = (TextView) view.findViewById(R.id.loadMore);
getListView().addFooterView(footer);
setListAdapter(ListViewHelper.getAdapterForContentList(mContent, this));
Я предполагаю, что поскольку я поместил null в inflater в качестве параметра родителя, представление не было добавлено в текущее представление содержимого и поэтому mainActivity не может найти его, а теперь, поскольку я явно использую родительское представление, возвращаемое inflater, чтобы найти TextView, это работает.
как Огниан заявил в своем комментарии выше, loadMore, вероятно, не найден.
вы можете увидеть, является ли это проблемой, изменив свой код на что-то вроде этого:
TextView footer = (TextView) findViewById(R.id.loadMore);
if ( footer != null ) {
getListView().addFooterView(footer);
setListAdapter(ListViewHelper.getAdapterForContentList(mContent, this));
} else {
throw new NullPointerException("footer is null");
}
не просматривая больше кода, трудно сказать, в чем истинная причина.