版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【移動(dòng)應(yīng)用開發(fā)技術(shù)】ListView相關(guān)使用,優(yōu)化Day08
packagecom.example.ex_day_0611_day07_listview;importjava.io.IOException;importjava.io.InputStream;import.MalformedURLException;import.URL;import.URLConnection;importjava.security.PublicKey;importjava.util.HashMap;importjava.util.concurrent.Executor;importandroid.os.AsyncTask;importandroid.os.Bundle;importandroid.app.Activity;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.view.LayoutInflater;importandroid.view.Menu;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.view.ViewGroup;importandroid.widget.BaseAdapter;importandroid.widget.Button;importandroid.widget.ImageView;importandroid.widget.ListView;importandroid.widget.ProgressBar;importandroid.widget.TextView;publicclassMainActivityextendsActivity{ HashMap<Integer,Bitmap>map=newHashMap<Integer,Bitmap>(); HashMap<Integer,Boolean>hashmap=newHashMap<Integer,Boolean>(); HashMap<Integer,MyAsyncTask2>myapa=newHashMap<Integer,MyAsyncTask2>(); HashMap<Integer,Integer>myint=newHashMap<Integer,Integer>(); privateListViewlistview; @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listview=(ListView)findViewById(R.id.listView1); MyApaptermyApapter=newMyApapter();
listview.setAdapter(myApapter); } classUser { ImageViewp_w_picpathview; ProgressBarpb; TextViewtv; Buttonbutton; }
classMyApapterextendsBaseAdapter
{ @Override
publicViewgetView(intposition,ViewconvertView,ViewGroupparent){
Viewview=null;
Useruser=newUser(); LayoutInflaterinflater=getLayoutInflater(); if(convertView==null) {
view=inflater.inflate(R.layout.itmp,null);
user.p_w_picpathview=(ImageView)view.findViewById(R.id.p_w_picpathView1);
user.pb=(ProgressBar)view.findViewById(R.gressBar1);
user.button=(Button)view.findViewById(R.id.button1);
user.tv=(TextView)view.findViewById(R.id.textView1);
view.setTag(user); }else { view=convertView; user=(User)view.getTag(); } //下載圖片 //設(shè)置圖片還未開始下載時(shí)的狀態(tài) user.p_w_picpathview.setImageResource(R.drawable.ic_launcher); Bitmapbitmap=map.get(position); if(bitmap==null)
{ MyAsyncTaskmyp_w_picpathview=newMyAsyncTask(user.p_w_picpathview,position,user.pb); myp_w_picpathview.execute(":8080/service/qq"+position+".png"); }else { user.p_w_picpathview.setImageBitmap(bitmap); } //實(shí)現(xiàn)按鈕點(diǎn)擊事件 finalButtonbutton1=user.button; finalintpos=position; finalProgressBarpb1=user.pb; finalTextViewtv=user.tv; button1.setOnClickListener(newOnClickListener(){ @Override publicvoidonClick(Viewv){
button1.setText("下載中");
button1.setEnabled(false);
MyAsyncTask2myasyctask2=newMyAsyncTask2(button1,pb1,tv,pos);
myapa.put(pos,myasyctask2);
myasyctask2.execute(":8080/service/qq"+pos+".zip");
hashmap.put(pos,null); } }); MyAsyncTask2task2=myapa.get(pos); ProgressBarpb2=user.pb; Buttonbutton2=user.button; TextViewtv1=user.tv; //按鈕點(diǎn)擊事件中設(shè)置進(jìn)度條。 //下文件 if(hashmap.get(position)==null) { button1.setText("下載"); button1.setEnabled(true); user.tv.setText("=========="); pb1.setProgress(0); } elseif(hashmap.get(position)==false) { button1.setText("下載中"); button1.setEnabled(false); user.pb.setMax(myint.get(pos));
task2.setReplace(pb2,button2,tv1);
}elseif(hashmap.get(position)==true) { button1.setText("下載完成"); button1.setEnabled(true); user.tv.setText("=========="); pb1.setMax(100); pb1.setProgress(100); } returnview;
} @Override publicintgetCount(){ return20; } @Override publicObjectgetItem(intposition){ returnnull; } @Override publiclonggetItemId(intposition){ return0; }
}
classMyAsyncTask2extendsAsyncTask<String,Integer,String>
{
Buttonbutton1;
ProgressBarpb;
TextViewtv;
intposition; publicMyAsyncTask2(Buttonbutton1,ProgressBarpb,TextViewtv,intposition)
{
this.button1=button1;
this.pb=pb;
this.tv=tv;
this.position=position; } publicvoidsetReplace(ProgressBarpb,Buttonbutton1,TextViewtv) { this.pb=pb; this.button1=button1; this.tv=tv; } @Override protectedStringdoInBackground(String...params){
try{ URLurl=newURL(params[0]); URLConnectionopenConnection=url.openConnection(); intcontentLength=openConnection.getContentLength(); myint.put(position,contentLength); pb.setMax(contentLength); InputStreaminputStream=openConnection.getInputStream(); byte[]buffer=newbyte[1024]; intsum=0; intlen=0; hashmap.put(position,false); while(-1!=(len
=inputStream.read(buffer))) {
sum+=len;
Thread.sleep(100);
publishProgress(sum); } hashmap.put(position,true); }catch(MalformedURLExceptione){ e.printStackTrace(); }catch(IOExceptione){ e.printStackTrace(); }catch(InterruptedExceptione){ e.printStackTrace(); } return"下載完成"; } @Override protectedvoidonPostExecute(Stringresult){
button1.setText(result);
button1.setEnabled(true); super.onPostExecute(result); } @Override protectedvoidonProgressUpdate(Integer...values){ intfp=listview.getFirstVisiblePosition(); intlp=listview.getLastVisiblePosition(); if(position>=fp&&position<=lp){ pb.setProgress(values[0]); tv.setText((int)((double)values[0]/(double)pb.getMax()*100)+"%"); } super.onProgressUpdate(values); }
}
classMyAsyncTaskextendsAsyncTask<String,Void,Bitmap>
{
intposition;
ImageViewp_w_picpathview;
ProgressBarpb; publicMyAsyncTask(ImageViewp_w_picpathview,intposition,ProgressBarpb){ this.p_w_picpathview=p_w_picpathview; this.position=position; this.pb=pb; } @Override protectedBitmapdoInBackground(String...params){ Bitmapbitmap=null;
try{ URLurl=newURL(params[0]); URLConnectionconnection=url.openConnection(); InputStreamis=connection.getInputStream(); bitma
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國商用皂液機(jī)行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2024-2030年中國即食花膠行業(yè)多元化經(jīng)營及未來發(fā)展策略分析研究報(bào)告
- 2024-2030年中國衛(wèi)浴裝置和配件行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2024-2030年中國十二胺行業(yè)戰(zhàn)略調(diào)研與未來可持續(xù)發(fā)展建議研究報(bào)告
- 2024-2030年中國醫(yī)療廢物轉(zhuǎn)運(yùn)車行業(yè)市場(chǎng)發(fā)展分析及發(fā)展趨勢(shì)與投資研究報(bào)告
- 2024-2030年中國化學(xué)纖維產(chǎn)業(yè)投融資趨勢(shì)及市場(chǎng)前景趨勢(shì)洞察研究報(bào)告
- 2024-2030年中國助聽器市場(chǎng)發(fā)展分析及市場(chǎng)趨勢(shì)與投資方向研究報(bào)告
- 2024-2030年中國切削液市場(chǎng)研發(fā)創(chuàng)新與競(jìng)爭(zhēng)格局預(yù)測(cè)分析研究報(bào)告
- 2024-2030年中國農(nóng)業(yè)機(jī)械用橡膠履帶行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2024-2030年中國內(nèi)燃機(jī)機(jī)油泵行業(yè)發(fā)展趨勢(shì)及發(fā)展前景研究報(bào)告
- 安徽海華科技集團(tuán)有限公司年產(chǎn)2萬噸甲酚技改及廠區(qū)清潔化升級(jí)改造項(xiàng)目環(huán)評(píng)報(bào)告書
- 血液透析業(yè)務(wù)學(xué)習(xí)課件
- 第1講-大學(xué)生心理健康導(dǎo)論
- 全面提高人才自主培養(yǎng)質(zhì)量PPT著力造就拔尖創(chuàng)新人才聚天下英才而用之PPT課件(帶內(nèi)容)
- 某砂石料廠砂石系統(tǒng)運(yùn)行管理制度及崗位職責(zé)
- 排水管道缺陷名稱及等級(jí)劃分
- 優(yōu)質(zhì)課一等獎(jiǎng)初中綜合實(shí)踐活動(dòng)《制定我們的班規(guī)班約:團(tuán)結(jié)友愛》
- GB/T 34897-2017滾動(dòng)軸承工業(yè)機(jī)器人RV減速器用精密軸承
- 《大衛(wèi)·科波菲爾》課件 統(tǒng)編版高中語文選擇性必修上冊(cè)
- 【全套精品課件】國際金融學(xué)課件
- 《目送》閱讀交流會(huì)課件
評(píng)論
0/150
提交評(píng)論