0
나는 다음과 같은 코드를 이해하지 못했다 AdapterView.But에 연결하는 방법 안드로이드 어댑터를 파악하려고 해요 :안드로이드 GridView의 메소드 setAdapter 작동 방법?
@Override
public void setAdapter(ListAdapter adapter) {
if (mAdapter != null && mDataSetObserver != null) {
mAdapter.unregisterDataSetObserver(mDataSetObserver);
}
resetList();
mRecycler.clear();
mAdapter = adapter;
mOldSelectedPosition = INVALID_POSITION;
mOldSelectedRowId = INVALID_ROW_ID;
// AbsListView#setAdapter will update choice mode states.
super.setAdapter(adapter);
if (mAdapter != null) {
mOldItemCount = mItemCount;
mItemCount = mAdapter.getCount();
mDataChanged = true;
checkFocus();
mDataSetObserver = new AdapterDataSetObserver();
mAdapter.registerDataSetObserver(mDataSetObserver);
mRecycler.setViewTypeCount(mAdapter.getViewTypeCount());
int position;
if (mStackFromBottom) {
position = lookForSelectablePosition(mItemCount - 1, false);
} else {
position = lookForSelectablePosition(0, true);
}
setSelectedPositionInt(position);
setNextSelectedPositionInt(position);
checkSelectionChanged();
} else {
checkFocus();
// Nothing selected
checkSelectionChanged();
}
requestLayout();
}
내가 모르는 변수에서 온 mAdapter 나는하지 않았다 이 메소드의 코드가 Eclipse에서 연관된 메소드와 연결하기 위해 클릭 할 수없는 이유를 이해하십시오. 구현은
원시 메소드입니까?
'mAdapter'는이 메소드가 속한 클래스의 멤버이거나 상속 된 보호 된 멤버입니다. – andy256
안드로이드의 setAdapter() 메소드는리스트 뷰를 위해하는 것과 동일합니다. 여기서 mAdapter는 코드의 다른 위치에 정의되어 있어야합니다. 코드에서 당신이 달성하기를 원하는 것을 이해하기가 어려웠습니다. 간단한 gridView를 구현하려고합니까? – user2041902
위에 게시 된 코드는 android.widget.GridView # setAdapter 메소드였습니다. Android 소스 코드에서 찾을 수 있습니다. – Thomas