ListView 에서 BaseAdapter 를 사용 하여 어 울 립 니 다.
3369 단어 안 드 로 이 드 기반
하지만 우리 리 스 뷰 의 아 이 템 이 많아 지면 많은 번 거 로 움 이 생 길 수 있 습 니 다.그리고 만약 에 우리 가 어떤 조작 을 하려 면 예 를 들 어 클릭 조작 을 해 야 한 다 는 문 제 를 생각해 본 적 이 있 습 니까?이렇게 되면 반드시 매우 번 거 로 울 것 이다.그래서 우 리 는 어댑터 를 사용 해서 어 울 리 는 또 다른 좋 은 방법 을 시도 해 볼 수 있다.모든 Adapter 에서 개인 은 BaseAdapter 를 비교적 마음 에 들 어 합 니 다.ListAdapter 같은 Adapter 처럼 제한 되 지 않 습 니 다.자,이 BaseAdapter 에 대해 말씀 드 리 겠 습 니 다.
이것 은 getCount()의 추상 적 인 방법 이 있 습 니 다.이 방법 은 현재 BaseAdapter 가 몇 개의 데 이 터 를 불 러 와 야 하 는 지 설명 하 는 것 입 니 다.
@Override
public int getCount() {
if (mModels != null) {
return mModels.size();
}
return 0;
}
위의 코드 에서 mModels 의 정 의 는 다음 과 같다.
private ArrayList mModels;
그래서 위 에서 우리 가 다시 쓴 getCount()방법 은 mModels 의 크기 입 니 다.왜냐하면 우 리 는 모든 Eye WebsiteModel 에 적합 해 야 하기 때 문 입 니 다.
getItem(int position)과 getItemId(int position)는 더 이상 할 말 이 없습니다.포 인 트 는 getView(int position,View view,View Group parent)입 니 다.말 그대로 getView 는 하나의 View 를 얻 는 것 입 니 다.하나의 View 라면 이 View 는 방법의 두 번 째 매개 변수 에서 들 어 옵 니 다.그리고 우 리 는 방법 에서 이 View 에 대해 우리 가 필요 로 하 는 조작 을 합 니 다.예 를 들 어 이름 을 바 꾸 는 것 입 니 다.View 를 다 받 았 기 때문에 어떻게 조작 하 시 겠 습 니까?아니면 생각 하 시 는 대로 하 시 겠 습 니까?
저 는 지금 여기 서 Adapter 에서 흔히 볼 수 있 는 방법 을 소개 합 니 다.그것 은 바로 우리 View 가 불 러 오지 않 았 을 때 불 러 오 는 것 입 니 다.이미 불 러 왔 다 면 이 View 를 얻 으 러 가 는 것 입 니 다.
여러분 은 아래 의 이 몇 줄 의 코드 를 보 실 수 있 습 니 다.
private class ViewHolder {
public TextView mSerialTextView = null;
public TextView mWebSiteTextView = null;
public ViewHolder(View v) {
mSerialTextView = (TextView) v.findViewById(R.id.fragment_eye_data_select_list_item_serial_textview);
mWebSiteTextView = (TextView) v.findViewById(R.id.fragment_eye_data_select_list_item_website_textview);
}
}
여기 서 이 View Holder 류 는 버퍼 역할 을 한다.우 리 는 getView()방법 에서 이 View Holder 류 를 조작 하 는 것 입 니 다.다음 과 같다.
@Override
public View getView(int position, View view, ViewGroup parent) {
ViewHolder viewHolder = null;
if (view == null || view.getTag() == null) {
view = mLayoutInflater.inflate(R.layout.fragment_eye_data_select_list_item_layout, null);
viewHolder = new ViewHolder(view);
view.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) view.getTag();
}
EyeWebSiteModel model = mModels.get(position);
viewHolder.mSerialTextView.setText("" + (position + 1));
viewHolder.mWebSiteTextView.setText(model.getmWebsite());
return view;
}
그리고 Fragment 나 Activity 에서 어 울 리 는 과정 도 간단 합 니 다.
ListView selectListView = (ListView) v.findViewById(R.id.fragment_eye_data_select_listview);
final ArrayList models = EyeSelectDataListFragmentMBLL.getMergeWebSiteModelsAll(getActivity());
if (models == null) {
return v;
}
EyeSelectDataListFragmentAdapter adapter = new EyeSelectDataListFragmentAdapter(getActivity(), models);
selectListView.setAdapter(adapter);
구체 적 인 실현 과정(EyeSelectDataListFragment.java 와 EyeSelectDataListFragment Adapter.java)을 참고 할 수 있 습 니 다.링크 를 열 려 면 클릭 하 십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Android 모방 웨 이 보 @ 친구, \ # 화제 \ # 및 links 처리 방안웨 이 보 를 사용 할 때 우 리 는 모두 이 두 가지 기능 을 발견 할 것 이다. Span 와 를 통 해 이 루어 졌 다 고 생각 하기 쉽 지만 그 중에서 세부 적 인 처리 가 필요 하 다. 시 나 웨 이 보 가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.