U2S1顯示所有文件_第1頁
U2S1顯示所有文件_第2頁
U2S1顯示所有文件_第3頁
U2S1顯示所有文件_第4頁
U2S1顯示所有文件_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

顯示所有文件主講教師:馮向科學習任務:顯示云盤中的所有文件23目

錄知識總結任務實施基本原理學習目標學習目標4能力目標會遍歷云盤的所有文件會顯示云盤的所有文件知識目標異步加載文件ListView顯示所有文件基本原理:異步加載文件5Android提供了一套專門用于異步處理的類,即AsyncTask類。使用這個類可以為耗時程序開辟一個新線程進行處理,處理完時返回。其實,AsyncTask類就是對Thread類的一個封裝,并且加入了一些新的方法?;驹恚篖istView顯示文件6任務實施:界面設計7主界面布局:

activity_main.xml使用ListView控件顯示所有文件任務實施:界面設計8ListView的自定義布局list_item.xml使用自定義布局顯示ListView中的一條“文件”記錄:圖標文件名稱創(chuàng)建時間文件大小9任務實施:定義異步任務類,獲取Swift對象privateclassGetObjectsTask

extendsAsyncTask<…>{protectedTaskResult<Objects>doInBackground(String...params){try{

//獲得當前租戶

Swiftswift=getService().getSwift(getApplicationState().getSelectedTenant().getId());returnnewTaskResult<Objects>(swift.containers().container(getApplicationState().getSelectedContainer().getName()).list().execute()); //返回租戶的選中容器中的所有對象}catch(Exceptione){returnnewTaskResult<Objects>(e);}}ObjectListFragment.java10getObjectsTask=newGetObjectsTask();getObjectsTask.execute();任務實施:調用異步任務,獲取對象ObjectListFragment.onCreateView()任務實施:定義獲取對象的getData()方法11listPseudoFileSystem=newArrayList<PseudoFileSystem>(getApplicationState().

getSelectedDirectory().getDirectories().values());for(inti=0;i<listPseudoFileSystem.size();i++){HashMap<String,java.lang.Object>map=newHashMap<String,java.lang.Object>(); //構建新行map.put(“img”,R.drawable.ic_menu_archive); //加入圖標到列StringfileName=listPseudoFileSystem.get(i).getMetaData().getName();map.put("fileName",cleanName(fileName)); map.put("modTime",""); map.put("fileSize",""); map.put("isFolder",true); map.put("index",i); list.add(map); //將行添加到二維結構中}ObjectListFragment.java任務實施:定義異步任務類,填充ListView12privateclassFillListViewTask

extendsAsyncTask<…>{

@OverrideprotectedvoidonPostExecute(List<HashMap<String,java.lang.Object>>result){ getActivity().setProgressBarIndeterminateVisibility(false);

SimpleAdapteradapter=newSimpleAdapter( context, //上下文環(huán)境 result, //二維數據集 R.layout.list_item, //自定義布局 newString[]{“img”,“fileName”,“modTime”,“fileSize”},

//“鍵”集 newint[]{R.id.imageView1,R.id.Filename,R.id.last_mod,R.id.file_size//控件id集 }); list_root.setAdapter(adapter); //綁定適配器}ObjectListFragment.java任務實施:調用異步任務,填充ListView控件13privatevoidfillListView(){ FillListViewTaskfillListViewTask=newFillListViewTask(); fillListViewTask.execute();}ObjectListFragment.java14list_root.setOnItemClickListener(newOnItemClickListener(){@Override

publicvoidonItemClick(AdapterView<?>parent,Viewview,

intposition,longid){ListViewlist=(ListView)parent;HashMap<String,Object>map=(HashMap<String,Object>)list.getItemAtPosition(position);booleanisFolder=(Boolean)map.get("isFolder");intindex=(Integer)map.get("index");if(isFolder){//文件夾getApplicationState().setSelectedDirectory(listPseudoFileSystem.get(index)); //獲得子目錄fillListView(); //重新填充ListView控件getActivity().getActionBar().setTitle(getApplicationState().getSelectedDirectory() .getMetaData().getName()); //修

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論