Я столкнулся со странной вещью при составлении списка пользовательских представлений.У меня было два ListView, отображающих одни и те же данные с использованием одного и того же адаптера.Один из них был накачан из XML, а другой был создан программно в другом Деятельности, поскольку он показывал / скрывал в соответствии с событием касания.Они работали в обоих случаях.Позже я заменил ListViews на GridViews (используя поиск / замену), но с этого момента работал только надутый.Созданный программно генерирует исключение NullPointerException в GridView.layoutChildren (), и мой Adapter.getView () никогда не вызывается, несмотря на то, что адаптер заполнен, как и ожидалось.Я не могу преодолеть это исключение, какие-либо идеи?
Надутый GridView работает хорошо (Activity.onCreate ()):
mListColours = (GridView) findViewById(R.id.listColours);
mAdapter = new ColourViewAdapter(this, R.layout.colour, Palette.getColours());
mListColours.setAdapter(mAdapter);
Другой GridView внутри конструктора ViewGroup:
mColourList = new GridView(context);
mAdapter = new ColourViewAdapter(context, R.layout.colour,Palette.getColours());
mColourList.setAdapter(mAdapter);
(...)
addView(mColourList);
Здесь выдается исключение (во ViewGroup):
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b)
{
(...)
gv = (GridView) child;
gv.layout(0, 0, r, getMeasuredHeight()); // NullPointerException
(...)
}