下面是我程序的图片

《android的SQLite与文件下载》

《android的SQLite与文件下载》

下面是我的程序代码:

主函数:

packagecom.example.allpor;importcom.example.database.DataBase;importandroid.os.Bundle;importandroid.app.Activity;importandroid.content.ContentValues;importandroid.content.Intent;importandroid.database.Cursor;importandroid.database.sqlite.SQLiteDatabase;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.Toast;/***这是主要的Activity*主要负责的就是模拟登录过程*@author吕檀溪**/publicclassMainActivityextendsActivity{privateDataBasebase;privateButtonbutOk;privateButtonbutCl;privateEditTextnameText;privateEditTextpwdText;privateSQLiteDatabasedb;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);butOk=(Button)findViewById(R.id.ok);butCl=(Button)findViewById(R.id.clear);nameText=(EditText)findViewById(R.id.name);pwdText=(EditText)findViewById(R.id.pwd);base=newDataBase(this,"mine",null,1);db=base.getReadableDatabase();base.onCreate(db);ContentValuesvalues=newContentValues();values.put("name","lvtanxi");values.put("pwd","jaychou");db.insert("demo_user",null,values);ButtonClickclick=newButtonClick();butOk.setOnClickListener(click);butCl.setOnClickListener(click);}/***创建Button的点击事件监听器*@author吕檀溪**/classButtonClickimplementsOnClickListener{@OverridepublicvoidonClick(Viewview){Buttonbut=(Button)view;if(R.id.ok==but.getId()){Stringname=nameText.getText().toString();Stringpwd=pwdText.getText().toString();String[]array={name,pwd};Cursorcursor=db.rawQuery("select*fromdemo_userwherename=?andpwd=?",array);if(cursor.moveToNext()){Toast.makeText(MainActivity.this,R.string.success,Toast.LENGTH_SHORT).show();Intentintent=newIntent();intent.putExtra("array",array);intent.setClass(MainActivity.this,ShowDown.class);startActivity(intent);}else{Toast.makeText(MainActivity.this,R.string.down,Toast.LENGTH_SHORT).show();}}else{nameText.setText("");pwdText.setText("");}}}}

第二个Activity:

packagecom.example.allpor;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importcom.example.database.DownLoad;importandroid.app.Activity;importandroid.content.Intent;importandroid.content.res.Resources;importandroid.os.Bundle;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.CheckBox;importandroid.widget.CompoundButton;importandroid.widget.RadioButton;importandroid.widget.RadioGroup;importandroid.widget.TextView;importandroid.widget.RadioGroup.OnCheckedChangeListener;/***进行下载的页面*@author吕檀溪**/publicclassShowDownextendsActivity{privateButtonbut;privateCheckBoxbox1;privateCheckBoxbox2;privateCheckBoxbox3;privateRadioGroupgroup;privateTextViewtext;privateList<String>list;privateMap<String,String>map;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.show);box1=(CheckBox)findViewById(R.id.box1);box2=(CheckBox)findViewById(R.id.box2);box3=(CheckBox)findViewById(R.id.box3);but=(Button)findViewById(R.id.load);group=(RadioGroup)findViewById(R.id.grop);text=(TextView)findViewById(R.id.user);Intentintent=getIntent();String[]array=intent.getStringArrayExtra("array");text.setText("欢迎:"+array[0]+";您的密码是:"+array[1]);list=newArrayList<String>();map=newHashMap<String,String>();Resourcesresources=getResources();map.put(resources.getString(R.string.box1),"http://61.164.160.62:8080/1/1/3163/wo99.com_1200916179836395.mp3?tflag=1392807562");map.put(resources.getString(R.string.box2),"http://storage11.ocdn.kugou.com/M00/04/8A/e4Olo04Avl7VWT-KACkYABpLCnI118.mp3");map.put(resources.getString(R.string.box3),"http://flv.whcedu.cn/files/2012-12/10/10184450552.mp3");CheckBoxChangeboxChange=newCheckBoxChange();box1.setOnCheckedChangeListener(boxChange);box2.setOnCheckedChangeListener(boxChange);box3.setOnCheckedChangeListener(boxChange);group.setOnCheckedChangeListener(newRadioGroupChange());but.setOnClickListener(newButtonClick());}/***Button的点击事件*@author吕檀溪**/classButtonClickimplementsOnClickListener{@OverridepublicvoidonClick(Viewview){for(Stringstr:list){DownLoadload=newDownLoad();load.toRun(map.get(str),"myMp3",str+".mp3");}}}/***RadioButton的Change事件*@author吕檀溪**/classRadioGroupChangeimplementsOnCheckedChangeListener{@OverridepublicvoidonCheckedChanged(RadioGroupgroup,intcheckedId){RadioButtonradio=(RadioButton)group.findViewById(checkedId);System.out.println(radio.getText().toString());}}/***CheckBox的Change事件*@author吕檀溪**/classCheckBoxChangeimplementsandroid.widget.CompoundButton.OnCheckedChangeListener{@OverridepublicvoidonCheckedChanged(CompoundButtonbuttonView,booleanisChecked){CheckBoxbox=(CheckBox)buttonView;Stringmsg=box.getText().toString();if(isChecked){list.add(msg);}else{list.remove(msg);}}}}

创建数据库的类:

packagecom.example.database;importandroid.content.Context;importandroid.database.sqlite.SQLiteDatabase;importandroid.database.sqlite.SQLiteDatabase.CursorFactory;importandroid.database.sqlite.SQLiteOpenHelper;/***创建android的SQLite数据库*@author吕檀溪**/publicclassDataBaseextendsSQLiteOpenHelper{publicDataBase(Contextcontext,Stringname,CursorFactoryfactory,intversion){super(context,name,factory,version);}//执行创建数据库的语句@OverridepublicvoidonCreate(SQLiteDatabasedb){System.out.println("---->onCreate");db.execSQL("droptableifexistsdemo_user");db.execSQL("createtabledemo_user(idintegerprimarykeyautoincrement,nametext,pwdtext)");}@OverridepublicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){//TODOAuto-generatedmethodstub}}

下载的线程类:

packagecom.example.database;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.net.HttpURLConnection;importjava.net.URL;importandroid.os.Environment;/***下载歌曲的线程类*@author吕檀溪**/publicclassDownLoadimplementsRunnable{privateURLurl;privateStringpath;privateStringurlStr;privateStringdirName;privateStringfileName;//在实例化线程类的同时得到外部存储器的路径publicDownLoad(){path=Environment.getExternalStorageDirectory()+File.separator;}/***启动线程*@paramurl下载文件的地址*@paramdirName文件夹的名字*@paramfileName下载文件的名字*/publicvoidtoRun(Stringurl,StringdirName,StringfileName){this.urlStr=url;this.dirName=dirName;this.fileName=fileName;newThread(this).start();}@Overridepublicvoidrun(){intnum=downFile();System.out.println("-------->"+num);}/***下载文件;返回整数。0:成功;1:文件存在;-1:下载出错*@return*/privateintdownFile(){InputStreamin=null;try{if(comparFile(dirName+File.separator+fileName)){return1;}else{in=getInputStream(urlStr);writeFile(in);}}catch(Exceptione){e.printStackTrace();return-1;}finally{if(null!=in){try{in.close();}catch(IOExceptione){e.printStackTrace();}}}return0;}/***写出下载的文件到SD卡*@paramin*@return*@throwsException*/privateFilewriteFile(InputStreamin)throwsException{Filefile=null;OutputStreamout=null;try{createDir(dirName);file=createFile(fileName);out=newFileOutputStream(file);byte[]array=newbyte[4*1024];intlen=0;while(-1!=(len=in.read(array))){out.write(array,0,len);}out.flush();}catch(Exceptione){e.printStackTrace();}finally{if(null!=out){out.close();}}returnfile;}//创建下载的文件privateFilecreateFile(StringfileName)throwsException{Filefile=newFile(path+dirName+File.separator+fileName);file.createNewFile();returnfile;}//创建文件夹privateFilecreateDir(StringdirName){Filedir=newFile(path+dirName);if(!dir.exists()&&!dir.isDirectory()){dir.mkdir();}returndir;}//判断文件是否存在privatebooleancomparFile(StringfilePath){Filefile=newFile(path+filePath);returnfile.exists();}//通过下载地址得到输入流privateInputStreamgetInputStream(StringurlStr)throwsException{url=newURL(urlStr);HttpURLConnectionconnection=(HttpURLConnection)url.openConnection();returnconnection.getInputStream();}}

布局文件之主页面:

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity"><TextViewandroid:id="@+id/text1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/text1"/><EditTextandroid:id="@+id/name"android:layout_width="fill_parent"android:layout_height="wrap_content"android:background="@android:drawable/editbox_background"android:layout_below="@id/text1"/><TextViewandroid:id="@+id/text2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/text2"android:layout_below="@id/name"/><EditTextandroid:id="@+id/pwd"android:layout_width="fill_parent"android:layout_height="wrap_content"android:password="true"android:background="@android:drawable/editbox_background"android:layout_below="@id/text2"/><Buttonandroid:id="@+id/clear"android:layout_height="wrap_content"android:layout_width="wrap_content"android:text="@string/clear"android:layout_below="@id/pwd"android:layout_alignRight="@id/pwd"/><Buttonandroid:id="@+id/ok"android:layout_height="wrap_content"android:layout_width="wrap_content"android:text="@string/ok"android:layout_below="@id/pwd"android:layout_toLeftOf="@id/clear"/></RelativeLayout>

显示的第二页面:

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity"><TextViewandroid:id="@+id/user"android:layout_width="wrap_content"android:layout_height="wrap_content"/><LinearLayoutandroid:id="@+id/lay1"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_below="@id/user"android:orientation="horizontal"><CheckBoxandroid:id="@+id/box1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/box1"/><CheckBoxandroid:id="@+id/box2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/box2"/><CheckBoxandroid:id="@+id/box3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/box3"/></LinearLayout><LinearLayoutandroid:id="@+id/lay2"android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_below="@id/lay1"><RadioGroupandroid:id="@+id/grop"android:layout_width="wrap_content"android:layout_height="wrap_content"><RadioButtonandroid:id="@+id/radio1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/raido1"/><RadioButtonandroid:id="@+id/radio2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/raido2"android:layout_marginLeft="120px"android:layout_marginTop="-36px"/></RadioGroup></LinearLayout><Buttonandroid:id="@+id/load"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/load"android:layout_below="@id/lay2"android:layout_centerHorizontal="true"/></RelativeLayout>

最后是常量:

<?xmlversion="1.0"encoding="utf-8"?><resources><stringname="app_name">allpor</string><stringname="action_settings">Settings</string><stringname="text1">请输入姓名:</string><stringname="text2">请输入密码:</string><stringname="ok">登录</string><stringname="clear">重置</string><stringname="success">登录成功</string><stringname="down">登录失败</string><stringname="box1">青花瓷</string><stringname="box2">牛仔很忙</string><stringname="box3">甜甜的</string><stringname="raido1">普通</string><stringname="raido2">高质量</string><stringname="load">下载全部</string></resources>

更多相关文章

  1. Android Studio 与git 添加忽略文件
  2. android 入门学习笔记 上传大文件
  3. Android:处理触摸事件
  4. android实现文件读写功能
  5. Android 本地文件上传到服务器
  6. android--------根据文件路径加载指定文件
  7. Android 事件监听 handler AsyncTaskde也是一种并发
  8. Android创建子线程和回调主线程的几种方式

随机推荐

  1. Android卡顿检测及优化
  2. gcc手动编译android可执行程序
  3. android初涉JNI
  4. Android各个Support Library介绍
  5. Android热修复——简单实现
  6. Google nexus 6p android 8.0——>androi
  7. Android日历操作
  8. 一步一步教你如何在android使用tesseract
  9. JNI 防混淆 Android(安卓)proguard
  10. android View长按事件简单写法