




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】JSON_SQLite_Listview06-17
packagecom.example.ex_day00;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;import.MalformedURLException;import.URL;import.URLConnection;importjava.nio.ByteBuffer;importjava.util.ArrayList;importjava.util.HashMap;importorg.apache.http.util.ByteArrayBuffer;importorg.apache.http.util.EncodingUtils;importorg.json.JSONArray;importorg.json.JSONException;importorg.json.JSONObject;importandroid.os.AsyncTask;importandroid.os.Bundle;importandroid.os.Environment;importandroid.app.Activity;importandroid.content.ContentValues;importandroid.database.Cursor;importandroid.database.sqlite.SQLiteDatabase;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.transition.Visibility;importandroid.util.Log;importandroid.view.LayoutInflater;importandroid.view.Menu;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.view.ViewGroup;importandroid.widget.BaseAdapter;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.ImageView;importandroid.widget.ListView;importandroid.widget.ProgressBar;publicclassMainActivityextendsActivityimplementsOnClickListener{ Stringpath=":8080/abc.txt"; ArrayList<RuanJian>ruanjian=newArrayList<RuanJian>(); MyAsyncTaskmyAsyncTask; ListViewlistview;
HashMap<String,Bitmap>hashBit=newHashMap<String,Bitmap>();
HashMap<String,MyAsyncTask2>myasync=newHashMap<String,MyAsyncTask2>();
EditTextchongshi;
ProgressBarprogressbar;
Buttonbutton; privateMyAdapermyAdaper; privateSQLiteDatabasemdb;
@Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listview=(ListView)findViewById(R.id.listView1); progressbar=(ProgressBar)findViewById(R.gressBar1); chongshi=(EditText)findViewById(R.id.chongshi);
button=(Button)findViewById(R.id.button1);
button.setOnClickListener(this);
download();
selectSQL(); } privatevoidselectSQL(){ ruanjian.clear();
Cursorquery=mdb.query("student",null,null,null,null,null,null);
booleantoFirst=query.moveToFirst();
while(toFirst){
intname_index=query.getColumnIndex("name");
intdesc_index=query.getColumnIndex("desc");
intp_w_picpathpath_index=query.getColumnIndex("p_w_picpathpath");
Stringname=query.getString(name_index);
Stringdesc=query.getString(desc_index);
Stringp_w_picpathpath=query.getString(p_w_picpathpath_index);
ruanjian.add(newRuanJian(name,desc,p_w_picpathpath));
toFirst=query.moveToNext(); }
myAdaper.notifyDataSetChanged(); } privatevoidLianJieSQL(){
MyDatamyData=newMyData(this);
mdb=myData.getReadableDatabase(); } privatevoiddownload(){ MyAsyncTaskmyAsyncTask=newMyAsyncTask(); myAsyncTask.execute(path); LianJieSQL(); myAdaper=newMyAdaper(); listview.setAdapter(myAdaper); } classMyAsyncTaskextendsAsyncTask<String,String,String>{ @Override protectedStringdoInBackground(String...params){
ByteArrayBufferarrayBuffer=newByteArrayBuffer(50); try{ URLurl=newURL(params[0]); URLConnectionopenConnection=url.openConnection(); openConnection.setConnectTimeout(3000); openConnection.setReadTimeout(3000);
InputStreaminputStream=openConnection.getInputStream(); byte[]buffer=newbyte[1024]; intlen=0; while((len=inputStream.read(buffer))!=-1) {
arrayBuffer.append(buffer,0,len); } }
catch(MalformedURLExceptione){ runOnUiThread(newRunnable(){ @Override publicvoidrun(){
chongshi.setText("读取失败1");
button.setVisibility(Button.VISIBLE);
progressbar.setVisibility(View.INVISIBLE); } }); e.printStackTrace(); }catch(IOExceptione){ runOnUiThread(newRunnable(){ @Override publicvoidrun(){
chongshi.setText("网络连接异常1");
button.setVisibility(Button.VISIBLE);
progressbar.setVisibility(View.INVISIBLE); } }); e.printStackTrace(); } returnnewString(arrayBuffer.toByteArray()); }
@Override
protectedvoidonPostExecute(Stringresult){
super.onPostExecute(result);
newMyAsyncTask3().execute(result);
} }
classMyAsyncTask3extendsAsyncTask<String,Void,Void>
{ @Override protectedVoiddoInBackground(String...params){ try{ JSONArrayarray=newJSONArray(params[0]); SQldelete();
//删除数据库所有数据delete for(inti=0;i<array.length();i++){ JSONObjectjsonObject=array.getJSONObject(i); Stringname=jsonObject.getString("name"); Stringdesc=jsonObject.getString("desc"); Stringp_w_picpathpath=jsonObject.getString("p_w_picpathpath"); RuanJianruanJian=newRuanJian(name,desc,p_w_picpathpath); SQLinsert(ruanJian); ruanjian.add(ruanJian); } }catch(JSONExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } runOnUiThread(new
Runnable(){ publicvoidrun(){ myAdaper.notifyDataSetChanged(); } }); returnnull; } privatevoidSQldelete(){
mdb.delete("student",null,null); } privatevoidSQLinsert(RuanJianruanjian){ ContentValuesvalues=newContentValues(); values.put("name",); values.put("desc",ruanjian.desc); values.put("p_w_picpathpath",ruanjian.p_w_picpathpath); mdb.insert("student",null,values); }
} classMyAsyncTask2extendsAsyncTask<String,Void,Bitmap>{ privateImageViewp_w_picpathview;
intposition;
Stringname; publicMyAsyncTask2(ImageViewp_w_picpathview,intposition,Stringname){ this.p_w_picpathview=p_w_picpathview;
this.position=position;
=name; } @Override protectedBitmapdoInBackground(String...params){ Cursorcursor=mdb.query("student",null,"name=?",newString[]{name},null,null,null); if(cursor.moveToFirst()){ Stringp_w_picpath_path=cursor.getString(cursor.getColumnIndex("p_w_picpathpath")); Filefile=newFile(p_w_picpath_path); try{ FileInputStreamis=newFileInputStream(file); Bitmapbitmap=BitmapFactory.decodeStream(is); hashBit.put(params[0],bitmap); returnbitmap; }catch(FileNotFoundExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } Bitmapbitmap=null; try{ URLurl=newURL(params[0]); URLConnectionopenConnection=url.openConnection(); openConnection.setConnectTimeout(3000); openConnection.setReadTimeout(3000); InputStreamis=openConnection.getInputStream(); bitmap=BitmapFactory.decodeStream(is); hashBit.put(params[0],bitmap); //实现把图片保存到sdcard中 //判断sdcard是否可用 //得到保存图片的上一级目录,file.getparentFile //press intp_w_picpath_index=params[0].lastIndexOf("/"); Stringp_w_picpath_path=params[0].substring(p_w_picpath_index);
if(bitmap!=null){
if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){
Stringpath=Environment.getExternalStorageDirectory().getPath()+"/p_w_picpaths/"+p_w_picpath_path;
update(path,name);
Filefile=newFile(path);
Filefile2=file.getParentFile();
if(!file2.exists())
{
file2.mkdirs();
}
FileOutputStreamfos=newFileOutputStream(file);
press(Bitmap.CompressFormat.PNG,100,fos);
} } }catch(MalformedURLExceptione){ runOnUiThread(newRunnable(){ @Override publicvoidrun(){
chongshi.setText("读取失败2"); } }); e.printStackTrace(); }catch(Exceptione){
runOnUiThread(newRunnable(){ @Override publicvoidrun(){
chongshi.setText("网络连接异常2"); } }); e.printStackTrace(); } returnbitmap; } privatevoidupdate(Stringpath,Stringname){ Log.e("========name========",name+","+path); ContentValuesvalues=newContentValues(); values.put("p_w_picpathpath",path); mdb.update("student",values,"name=?",newString[]{name}); } @Override protectedvoidonPostExecute(Bitmapresult){ if(listview.getFirstVisiblePosition()<=position&&listview.getLastVisiblePosition()>=position)
{ p_w_picpathview.setImageBitmap(result); } progressbar.setVisibility(ProgressBar.GONE); chongshi.setVisibility(EditText.GONE); super.onPostExecute(result); } } classMyAdaperextendsBaseAdapter{ @Override publicintgetCount(){ //TODOAuto-generatedmethodstub returnruanjian.size(); } @Override publicObjectgetItem(intposition){ //TODOAuto-generatedmethodstub returnnull; } @Override publiclonggetItemId(intposition){ //TODOAuto-generatedmethodstub return0; } @Override publicViewgetView(intposition,ViewconvertView,ViewGroupparent){ RuanJianruanJian2=ruanjian.get(position); LayoutInflaterlayoutInflater=getLayoutInflater(); Viewinflate=null; Useruser=newUser(); if(convertView==null){ inflate=layoutInflater.inflate(R.layout.itemp,null); user.p_w_picpathview=(ImageView)inflate.findViewById(R.id.p_w_picpathView1); user.et1=(EditText)inflate.findViewById(R.id.editText1); user.et2=(EditText)inflate.findViewById(R.id.editText2); inflate.setTag(user); }else { inflate=convertView; user=(User)inflate.getTag(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公路养护合同范本
- 人力资源外包合同范例
- 代理旗舰店合同范本
- 农户种植水稻合同范本
- 2024年中国移动招聘考试真题
- 个人债权抵押合同范本
- 2024年西安工业大学专任教师招聘考试真题
- 企业签订劳务合同范本
- 供热站拆除合同范本
- 兼职技术总工合同范本
- 1.1原子结构-12课时课件高二化学人教版选择性必修2
- 如何让孩子积极参与家务劳动
- 2023年污水处理行业洞察报告及未来五至十年预测分析报告(修订版)
- 小学生素质发展报告单
- 人卫版急诊与灾难医学之呼吸困难教学课件
- 厨房油烟净化设备日常保养与维护
- 拓扑数据分析理论
- (完整版)200210号文-工程勘察设计收费标准(2002年修订本)
- 部编版语文二年级上册第1单元核心素养教案
- (完整版)污水管道施工方案
- 国际法与国际争端解决 课件全套 人大 第1-18章 导论、国际法渊源-国际人权法
评论
0/150
提交评论