Android 고급 컨트롤ListView 사용 방법

3633 단어 되는대로 쓰다
1. BaseAdapter: 모든 어댑터 클래스의 부류로 목록 항목을 최대한 맞춤형으로 설정할 수 있습니다. 1.1 사용자 정의 어댑터의 방법 get Count getView getItem Item Id1.2 Layout Inflater(레이아웃 해석기) - Layout Inflater는 세 가지 획득 방식이 있습니다. 자료에서layout 레이아웃 파일을 하나의 View 대상으로 해석하는 데 사용되는 상세한 설명이 있습니다. new는 안 됩니다.시스템 서비스 필요
inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
사례 1: ListView 사용 및 최적화 2.ListView 최적화 2.1 ConvertView 재사용 구성 요소 드래그할 때 가려지고 보이지 않는 컨트롤을 사용하여 새 대상을 만들 때마다 재사용합니다
2.2 내부 클래스 ViewHolder+ConvertView를 사용합니다.setTag()는 ViewHolder(뷰 소유자)를 찾을 때마다 대신 컨트롤을 저장합니다.
2.3 페이지 조회(Pull To Refresh) 2.3.2 AsyncTask(이동 작업)를 사용하여 데이터를 불러오기 위해 최소한 다음 두 가지 방법을 다시 써야 한다. DoInBackground 백엔드에서 onPostExecute를 실행하고 DoInBackground 방법이 끝난 후에 실행하며 UI 라인에서 실행하면 UI 공간에 대한 핵심 코드를 설정할 수 있다. myListViewAdapter.notifyDataSetChanged();//알림 어댑터 데이터 변경ptrlvmain_1.onRefreshComplete();//알림 컨트롤 데이터가 불러왔습니다
2.4 이벤트 감청의 최적화 가설 Item에 세 개의 단추가 있는데 세 개의 단추에 이벤트를 정의해야 한다. 만약에 다음과 같다면btn1.setOnclickListener(new View.onClickListener(){ public void onClick(View view){//… } }); btn2.setOnclickListener(new View.onClickListener(){ public void onClick(View view){//… } }); btn3.setOnclickListener(new View.onClickListener(){ public void onClick(View view){//… } }); 한 화면에 10개의 Item이 표시되면 모두 30개의 listener 객체가 메모리에 생성됩니다.Adapter를 만들 때 Listener를 하나만 만들고 전역 속성으로 정의한 다음 단추의 ID를 통해 어떤 이벤트가 터치되어야 하는지 판단합니다. class MyAdapter extends BaseAdapter{ View.onClickListener myListener = new View.onClickListener(){ public void onClick(View view){ if(view.getId() == R.id.btn1){//… }else if(view.getId() == R.id.btn2){//… }else if(view.getId() == R.id.btn3){//… } } }); }
//     
btn1.setOnclickListener(myListener);
btn2.setOnclickListener(myListener);
btn3.setOnclickListener(myListener);

2.5 또한 실제 개발에서 사진은 인터넷을 통해 다운로드해야 하고 스레드를 통해 다른 방식으로 다운로드하여 최적화해야 한다. 그러나android 네트워크 프로그래밍과 관련되기 때문에 이 부분의 내용은 다음 과정에서 소개할 것이다.
제3자 컨트롤: 위로 당기기 로드, 아래로 올리기 컨트롤 3.1 제3자 플러그인 라이브러리 안드로이드-PullTo Refresh-master를 가져옵니다.zip 3.2 레이아웃 파일에서 제3자 플러그인com을 사용합니다.handmark.pulltorefresh.library.PullToRefreshListView
3.3 사용자 지정 어댑터(BaseAdapter)에서 데이터 제공
3.4 비동기 작업 조회 데이터(AsyncTask) 3.4.1 AsyncTask는 세 가지 범주 유형인 Params, Progress, Result를 정의했다.Params 시작 작업이 수행되는 입력 매개 변수(예: HTTP 요청 URL)입니다.Progress 백그라운드 작업 실행 비율입니다.Result 백그라운드 실행 작업이 최종적으로 되돌아오는 결과,예를 들어String 3.4.2 비동기적으로 데이터를 불러오는 데는 최소한 다음 두 가지 방법을 다시 써야 한다.doInBackground(Params...) 백그라운드에서 실행하면 비교적 시간이 걸리는 작업은 여기에 놓을 수 있다.onPostExecute(Result)는Handler가 UI를 처리하는 방식과 같다.이 안에는 DoInBackground에서 얻은 결과 처리 작업 UI를 사용할 수 있습니다. 주: 이 방법에서는 어댑터와 컨트롤 myBaseAdapter에게 알립니다.notifyDataSetChanged();//알림 어댑터 데이터 변경plvmain_plv1.onRefreshComplete();//알림 컨트롤 데이터가 불러왔습니다
3.5 PullToRefreshListView에 관련 속성 설정plvmain_1.setMode(Mode.BOTH);//새로 고침 모드 Mode를 설정합니다.BOTH: 위쪽 당기기 및 아래쪽 당기기 모드 모두 지원.PULL_FROM_START: 풀다운 Pulling Down Mode만 지원됩니다.PULL_FROM_END: Pulling Up만 지원
  plv_main_1.getLoadingLayoutProxy().setPullLabel("    ...");//     ,    
  plv_main_1.getLoadingLayoutProxy().setRefreshingLabel("    ...");//    
  plv_main_1.getLoadingLayoutProxy().setReleaseLabel("    ...");//          ,     

3.6 PullToRefreshListView에 어댑터 설정
3.7 Pull To Refresh ListView에 감청기 감청기를 설치하는 것은 두 가지가 있다. 첫 번째 상단과 하단 갱신의 효과는 같다. 상단과 하단 갱신의 효과가 다르려면 두 번째 set On Refresh Listener/Pull To Refresh Base를 사용해야 한다.OnRefreshListener
  setOnRefreshListener2/PullToRefreshBase.OnRefreshListener2

핵심: 1,listview 컨트롤러, 항목 자원, 사용자 정의 어댑터 준비 2, 서버에 데이터 가져오기 3, 사용자 정의 어댑터 초기화(보기 해상도, 항목 자원의view 컨트롤러, 모든 하위 컨트롤 가져오기, 하위 컨트롤에 값 부여,view 되돌리기) 4, 귀속 어댑터

좋은 웹페이지 즐겨찾기