【移动应用开发技术】JSON-SQLite-Listview 06-17_第1页
【移动应用开发技术】JSON-SQLite-Listview 06-17_第2页
【移动应用开发技术】JSON-SQLite-Listview 06-17_第3页
【移动应用开发技术】JSON-SQLite-Listview 06-17_第4页
【移动应用开发技术】JSON-SQLite-Listview 06-17_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论