android复习数据存储.docx

上传人:b****6 文档编号:7567976 上传时间:2023-01-25 格式:DOCX 页数:13 大小:116.13KB
下载 相关 举报
android复习数据存储.docx_第1页
第1页 / 共13页
android复习数据存储.docx_第2页
第2页 / 共13页
android复习数据存储.docx_第3页
第3页 / 共13页
android复习数据存储.docx_第4页
第4页 / 共13页
android复习数据存储.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

android复习数据存储.docx

《android复习数据存储.docx》由会员分享,可在线阅读,更多相关《android复习数据存储.docx(13页珍藏版)》请在冰豆网上搜索。

android复习数据存储.docx

android复习数据存储

Android中的单元测试

1配置manifest文件

xmlversion="1.0"encoding="utf-8"?

>

android="

package="com.xu.junittest"

android:

versionCode="1"

android:

versionName="1.0">

android:

minSdkVersion="10"

android:

targetSdkVersion="10"/>

android:

allowBackup="true"

android:

icon="@drawable/ic_launcher"

android:

label="@string/app_name"

android:

theme="@style/AppTheme">

android:

name="com.xu.junittest.MainActivity"

android:

label="@string/app_name">

name="android.intent.action.MAIN"/>

name="android.intent.category.LAUNCHER"/>

name="android.test.runner"/>

name="android.test.InstrumentationTestRunner"

android:

targetPackage="com.xu.junittest"

>

2编写单元测试代码

packagecom.xu.junittest.service;

importjunit.framework.Assert;

importandroid.test.AndroidTestCase;

publicclassPersonServiceTestextendsAndroidTestCase

{

publicvoidtestSave()throwsException

{

PersonServiceservice=newPersonService();

service.save(null);

}

publicvoidtestAdd()throwsException

{

PersonServiceservice=newPersonService();

intresult=service.add(1,2);

Assert.assertEquals(3,result);

}

}

*****************************************************************************************************************************************************************

使用SAX或者DOM或者PULL解析XML文件

在Android平台上可以使用SimpleAPIforXML(SAX),DocumentObjectModel(DOM)和Android附带的pull解析器解析XML文件

Person.xml

xmlversion="1.0"encoding="utf-8"?

>

liming

30

zhangxiaoxiang

50

Person.java

packagecom.pull.domain;

publicclassPerson

{

privateIntegerid;

privateStringname;

privateIntegerage;

publicIntegergetId()

{

returnid;

}

publicvoidsetId(Integerid)

{

this.id=id;

}

publicStringgetName()

{

returnname;

}

publicvoidsetName(Stringname)

{

this.name=name;

}

publicIntegergetAge()

{

returnage;

}

publicvoidsetAge(Integerage)

{

this.age=age;

}

@Override

publicStringtoString()

{

return"Person[id="+id+",name="+name+",age="+age+"]";

}

}

PersonService.java

packagecom.pull.service;

importjava.io.InputStream;

importjava.util.ArrayList;

importjava.util.List;

importorg.xmlpull.v1.XmlPullParser;

//importorg.xmlpull.v1.XmlPullParserFactory;

importandroid.util.Xml;

importcom.pull.domain.Person;

publicclassPersonService

{

publicstaticListgetPersons(InputStreamxml)throwsException

{

Listpersons=null;

Personperson=null;

//XmlPullParserpullPaeser=XmlPullParserFactory.newInstance().newPullParser();

XmlPullParserpullPaeser=Xml.newPullParser();//得到pull解析器

pullPaeser.setInput(xml,"UTF-8");//为pull解析器设置要解析的数据

intevent=pullPaeser.getEventType();

while(event!

=XmlPullParser.END_DOCUMENT)

{

switch(event)

{

caseXmlPullParser.START_DOCUMENT:

persons=newArrayList();

break;

caseXmlPullParser.START_TAG:

if("person".equals(pullPaeser.getName()))

{

intid=newInteger(pullPaeser.getAttributeValue(0));

person=newPerson();

person.setId(id);

}

if("name".equals(pullPaeser.getName()))

{

Stringname=pullPaeser.nextText();

person.setName(name);

}

if("age".equals(pullPaeser.getName()))

{

intage=newInteger(pullPaeser.nextText());

person.setAge(age);

}

break;

caseXmlPullParser.END_TAG:

if("person".equals(pullPaeser.getName()))

{

persons.add(person);

person=null;

}

break;

default:

break;

}

event=pullPaeser.next();

}

returnpersons;

}

/*保存数据到xml文件

*

*@parampersons

*@throwsException

*/

publicstaticvoidsave(Listpersons,OutputStreamout)throwsException

{

XmlSerializerserilaize=Xml.newSerializer();

serilaize.setOutput(out,"UTF-8");

serilaize.startDocument("UTF-8",true);

serilaize.startTag(null,"persons");

for(Personperson:

persons)

{

serilaize.startTag(null,"person");

serilaize.attribute(null,"id",person.getId().toString());

serilaize.startTag(null,"name");

serilaize.text(person.getName());

serilaize.endTag(null,"name");

serilaize.startTag(null,"age");

serilaize.text(person.getAge().toString());

serilaize.endTag(null,"age");

serilaize.endTag(null,"person");

}

serilaize.endTag(null,"persons");

serilaize.endDocument();

out.flush();

out.close();

}

}

Manifest.xml

xmlversion="1.0"encoding="utf-8"?

>

android="

package="com.pull.xmlparse"

android:

versionCode="1"

android:

versionName="1.0">

android:

minSdkVersion="8"

android:

targetSdkVersion="8"/>

android:

allowBackup="true"

android:

icon="@drawable/ic_launcher"

android:

label="@string/app_name"

android:

theme="@style/AppTheme">

android:

name="com.pull.xmlparse.MainActivity"

android:

label="@string/app_name">

name="android.intent.action.MAIN"/>

name="android.intent.category.LAUNCHER"/>

name="android.test.runner"/>

name="android.test.InstrumentationTestRunner"

android:

targetPackage="com.pull.xmlparse">

PersonServiceTest.java

packagecom.pull.test;

importjava.io.InputStream;

importjava.util.List;

importcom.pull.domain.Person;

importcom.pull.service.PersonService;

importandroid.test.AndroidTestCase;

importandroid.util.Log;

publicclassPersonServiceTestextendsAndroidTestCase

{

publicvoidtestPersons()throwsException

{

InputStreamxml=this.getClass().getClassLoader().getResourceAsStream("person.xml");

Listpersons=PersonService.getPersons(xml);

for(Personperson:

persons)

{

Log.i("PersonServiceTest",person.toString());

}

}

//保存一些数据到xml文件中

publicvoidtestsavePersons()throwsException

{

Listpersons=newArrayList();

persons.add(newPerson(43,"zhangshan",80));

persons.add(newPerson(42,"zhangshan1",80));

persons.add(newPerson(44,"zhangshan2",80));

persons.add(newPerson(45,"zhangshan3",80));

FilexmlFile=newFile(getContext().getFilesDir(),"file.xml");

FileOutputStreamout=newFileOutputStream(xmlFile);

PersonService.save(persons,out);

}

}

insertintoperson(name,number)values('zhangshan','10')

select*frompersonwherename='zhangshan'

updatepersonsetnumber='119'wherename='zhangshan'

deletefrompersonwherename='zhangshan'

内容提供者(contentprovider)

创建一个内容提供者

1继承contentprovider

2并在配置文件中配置

3定义一个uri的匹配器用于匹配uri

packagecom.hema.db;

importandroid.content.ContentProvider;

importandroid.content.ContentValues;

importandroid.content.UriMatcher;

importandroid.database.Cursor;

importandroid.database.sqlite.SQLiteDatabase;

import.Uri;

publicclassPersonProviderextendsContentProvider{

//定义一个uri的匹配器用于匹配uri,如果路径不满足条件返回-1

privatestaticUriMatchermatcher=newUriMatcher(UriMatcher.NO_MATCH);

privatestaticfinalintINSERT=1;

privatestaticfinalintDELETE=2;

privatestaticfinalintUPDATE=3;

privatestaticfinalintQUERY=4;

privatePersonSQLiteOpenHelperhelper=null;

static

{

//添加一组匹配规则

matcher.addURI("com.hema.db.PersonProvider","insert",INSERT);

matcher.addURI("com.hema.db.PersonProvider","delete",DELETE);

matcher.addURI("com.hema.db.PersonProvider","update",UPDATE);

matcher.addURI("com.hema.db.PersonProvider","query",QUERY);

}

//

//content:

//com.hema.db.PersonProvider/insert添加

//content:

//com.hema.db.PersonProvider/delete添加

//content:

//com.hema.db.PersonProvider/update添加

//content:

//com.hema.db.PersonProvider/query添加

//当内容提供者被创建的时候调用适合数据初始化的操作

@Override

publicbooleanonCreate(){

helper=newPersonSQLiteOpenHelper(getContext());

returnfalse;

}

@Override

publicCursorquery(Uriuri,String[]projection,Stringselection,

String[]selectionArgs,StringsortOrder){

if(matcher.match(uri)==QUERY)

{

//返回查询的结果集

SQLiteDatabasedb=helper.getReadableDatabase();

Cursorcursor=db.query("person",projection,selection,selectionArgs,null,null,sortOrder);

returncursor;

}

else

{

thrownewIllegalArgumentException("路径不匹配,不能执行查询");

}

}

@Override

publicStringgetType(Uriuri){

//TODOAuto-generatedmethodstub

returnnull;

}

@Override

publicUriinsert(Uriuri,ContentValuesvalues){

//TODOAuto-generatedmethodstub

returnnull;

}

@Override

publicintdelete(Uriuri,Stringselection,String[]selectionArgs){

//TODOAuto-generatedmethodstub

return0;

}

@Override

publicintupdate(Uriuri,ContentValuesvalues,Stringselection,

String[]selectionArgs){

//TODOAuto-generatedmethodstub

return0;

}

}

Manifest.xml

name="com.hema.db.PersonProvider"

android:

authorities="com.hema.db.personprovider"

>

如何使用内容提供者

ContentResolverresolver=getContentResolver();使用获得的contentResolver对象对内容提供者进行增删改查的工作

packagecom.xu.providerother;

import.Uri;

importandroid.os.Bundle;

importandroid.app.Activity;

importandroid.content.ContentResolver;

importandroid.database.Cursor;

importandroid.view.View;

publicclassMainActivityextendsActivity{

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

public

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1