가끔 ArrayAdapter에 NullPointerException
이 표시되어 ListFragment가 채워집니다. getActivity()
이 null을 반환하는 것처럼 보입니다.하지만 내가 알 수있는 한 그렇게하지 말아야합니다.ArrayAdapter의 getActivity()가 null을 반환하는 경우가 있음
어댑터 코드 inflater = (LayoutInflater)...
는 예외 라인 : 나는 데이터를 얻을 수있는 로더를 사용하고
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
view = convertView;
if (view == null)
{
/* Inflate a row */
inflater = (LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); // THIS IS THE EXCEPTION LINE
view = inflater.inflate(R.layout.pairing_list_row, parent, false);
}
, 그리고 나는 onActivityCreated
방법 때까지 init을하지 않습니다. 어댑터는 로더가로드를 완료 할 때까지 작성되지 않으므로 onActivityCreated
이전에는 발생하지 않아야합니다.
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
getLoaderManager().initLoader(0, null, this);
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor)
{
PairingArrayAdapter pairings = (PairingArrayAdapter)getListAdapter();
if (pairings == null)
{
pairings = new PairingArrayAdapter(getActivity(), R.layout.pairing_list_row);
setListAdapter(pairings);
}
...
NullPointerException의 원인에 대한 아이디어가 있으십니까? 그것은 항상 일어나지 않습니다. 한 번 발생합니다. 나는 다시 똑같은 일을하고 그것은 일어나지 않습니다. 나는 그것을 이해할 수 없다.