Android项目设计说明书.docx

上传人:b****8 文档编号:30489265 上传时间:2023-08-15 格式:DOCX 页数:21 大小:378.14KB
下载 相关 举报
Android项目设计说明书.docx_第1页
第1页 / 共21页
Android项目设计说明书.docx_第2页
第2页 / 共21页
Android项目设计说明书.docx_第3页
第3页 / 共21页
Android项目设计说明书.docx_第4页
第4页 / 共21页
Android项目设计说明书.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

Android项目设计说明书.docx

《Android项目设计说明书.docx》由会员分享,可在线阅读,更多相关《Android项目设计说明书.docx(21页珍藏版)》请在冰豆网上搜索。

Android项目设计说明书.docx

Android项目设计说明书

Android项目设计说明书

——淘宝APP开发

班级:

软件工程133

姓名:

***

邹章鹏

指导老师:

***

日期:

2016.6

一、小组成员构成

钱程邹章鹏

二、任务分工

1.任务需求分析:

邹章鹏

从淘宝网站获取数据,重新构建开发个性化的淘宝购物APP软件,要求实现:

1.按关键字查询产品2.查询产品详情3.收藏需要关注的产品4.查看收藏产品清单

2.程序设计:

钱程

对需求分析结果进一步分析,构思整体程序设计思路及结构

3.代码编写:

钱程

Volley框架

sqllite数据库

JSON数据的传输和解析等等

4.程序测试:

邹章鹏

对程序运行结果进行检测和改进

三、项目完成思路

1.确定任务需求:

对任务需求进行分析,明确实验目标

2.确定项目开发工具

(1)Eclipse+AndroidSDK+ADT或AndroidStudio(APP开发平台)

(2)Chrome(网页分析工具)

(3)(JSON查看工具)

(4)RegexBuddy(正则表达式调式工具)或JSON组件,可采用json或

fastjson

(5)HttpClient(获取HTML数据)

(6)SQLite(存放收藏产品数据)

3.模块分析

(1)主界面模块:

该模块主要用于商品搜索

(2)商品列表模块:

该模块主要用于搜索后商品的显示,包括商品名称、价格和销量

(3)商品详情模块:

该模块主要显示搜索商品的详细信息,以及提供购买,收藏和收藏夹功能。

(4)收藏夹模块:

该模块主要显示收藏过的商品

四、项目设计

1.总体思路:

(1)页面设计

(2)连接淘宝获取数据(3)解析数据(4)页面显示(5)数据库的操作

2.主要功能:

界面1:

上方为EditText,用户可以此输入搜索词,下面方采用列表显示搜索得到的产品列表,APP首次启动时,此时没有用户输入查询词,默认显示“皮鞋”或其它自设定词的查询产品列表。

产品列表中至少需要显示产品图片、产品标题、产品价格、产品销量,可以显示更多关于产品的信息,但至少需显示上述4项。

列表以行显示,一行显示一个产品,用户单击某一行,则APP跳转显示到界面2

界面2:

显示从界面跳转过来的产品的详细信息,至少需要包括(图片,标题,价格,折扣价,销量,卖家昵称,其它信息可自行添加),在界面的最下方显示“购买”、"收藏"、"查看"按钮,用户单击"购买"按钮,跳转到淘宝对应的产品详情页,如果用户单击"收藏",将该产品信息收藏(或以设计一张数据表保存收藏的产品),如果该产品未被收藏过,则显示弹出信息"收藏成功",如果产品已被收藏过,则显示"收藏失败,该产品已被收藏,请单击查看按钮"。

界面3:

用户单击查看按钮后的显示已收藏产品界面,显示该用户所收藏的所有产品,以列表形式显示

界面4:

单击购买按钮,自动跳转至淘宝APP宝贝详情页,并实现立即购买功能。

五、数据库设计

建表语句:

createtableifnotexistsgoods(_idintegerprimarykeyautoincrement,titletextnotnull,pricetextnotnull,sellcounttextnotnull,imgurltextnotnull,item_idtextnotnull)

六、APP界面

七、核心代码及注释

1.FavoritesActivity:

/**

*收藏夹页面

*@authorAdministrator

*

*/

publicclassFavoritesActivityextendsActivity{

privateListViewmListView;

privateListmData;

privateMyAdaptermAdapter;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_favorites);

mListView=(ListView)findViewById(R.id.listView1);

mData=getData();

mAdapter=newMyAdapter(this,mData);

mListView.setAdapter(mAdapter);

AdapterView.OnItemClickListenerlistViewListener=newAdapterView.OnItemClickListener(){

@Override

publicvoidonItemClick(AdapterView

>parent,Viewview,

intposition,longid){

//TODOAuto-generatedmethodstub

mData.get(position).getItem_id();

Intentintent=newIntent(FavoritesActivity.this,

InfoActivity.class);

intent.putExtra("item_id",mData.get(position).getItem_id());

startActivity(intent);

}

};

mListView.setOnItemClickListener(listViewListener);

}

privateListgetData(){

Listlist=newArrayList();

SQLiteDatabasedb=openOrCreateDatabase("goods.db",MODE_PRIVATE,null);

Cursorc=db.rawQuery("select*fromgoods",null);

if(c!

=null){

while(c.moveToNext()){

ItemBeanitem=newItemBean();

item.setTitle(c.getString(c.getColumnIndex("title")));

item.setPrice(c.getString(c.getColumnIndex("price")));

item.setSold(c.getString(c.getColumnIndex("sellcount")));

item.setImgurl(c.getString(c.getColumnIndex("imgurl")));

item.setItem_id(c.getString(c.getColumnIndex("item_id")));

list.add(item);

}

c.close();

}

db.close();

returnlist;

}

}

2.InfoActivity

/**

*商品详细信息页面

*@authorAdministrator

*

*/

publicclassInfoActivityextendsActivityimplementsOnClickListener{

privateTextViewtitle,price,extraprice,postage,sellcount,from,

shopname;

privateButtonbtnBuy,btnStore,btnShowStore;

privateNetworkImageViewimageview;

privatestaticStringitem_id,url;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_info);

init();

Intentintent=getIntent();

item_id=intent.getStringExtra("item_id");

volley_Get(item_id);

}

privatevoidinit(){

title=(TextView)findViewById(R.id.info_title);

price=(TextView)findViewById(R.id.info_price);

extraprice=(TextView)findViewById(R.id.info_extraprice);

postage=(TextView)findViewById(R.id.info_postage);

sellcount=(TextView)findViewById(R.id.info_sellcount);

from=(TextView)findViewById(R.id.info_from);

shopname=(TextView)findViewById(R.id.info_shopname);

btnBuy=(Button)findViewById(R.id.btnbuy);

btnStore=(Button)findViewById(R.id.btnstore);

btnShowStore=(Button)findViewById(R.id.btnshowstore);

imageview=(NetworkImageView)findViewById(R.id.imageView1);

btnBuy.setOnClickListener(this);

btnStore.setOnClickListener(this);

btnShowStore.setOnClickListener(this);

}

/**

*根据商品id获取商品的具体数据

*@paramitem_id

*/

privatevoidvolley_Get(Stringitem_id){

//淘宝的url地址

Stringurl="

//将占位符改成商品的id

StringtmpUrl=url.replace("{0}",item_id);

VolleyRequest.RequestGet(this,tmpUrl,"abcGet",

newVolleyInterface(this,VolleyInterface.successListener,

VolleyInterface.errorListener){

@Override

publicvoidonMySuccess(Stringresult){

//解析json格式的数据,并显示在页面上

try{

JSONObjectobj=newJSONObject(result);

JSONObjectdata=obj.getJSONObject("data");

JSONArrayapiStack=data.getJSONArray("apiStack");

JSONObjectobj1=apiStack.getJSONObject(0);

//去掉反斜杠

Stringvalue=obj1.getString("value").replaceAll(

"\\\\","");

JSONObjectvalue1=newJSONObject(value);

JSONObjectdelivery=value1

.getJSONObject("delivery");

Stringfromstr=delivery.getString("from");

Stringpostagestr=delivery.getString("postage");

from.setText(fromstr);

postage.setText(postagestr);

JSONObjectitemobj=data.getJSONObject("item");

Stringtitlestr=itemobj.getString("title");

title.setText(titlestr);

JSONArrayimagearr=itemobj.getJSONArray("images");

InfoActivity.url=imagearr.getString(0);

JSONObjectseller=data.getJSONObject("seller");

Stringshopnamestr=seller.getString("shopName");

shopname.setText(shopnamestr);

JSONObjectitem=value1.getJSONObject("item");

Stringsellcountstr=item.getString("sellCount");

sellcount.setText(sellcountstr);

JSONObjectobj2=value1.getJSONObject("price");

JSONObjectpriceobj=obj2.getJSONObject("price");

Stringpricestr=priceobj.getString("priceText");

price.setText(pricestr);

JSONArrayextrapriceobj=obj2.getJSONArray("extraPrices");

JSONObjectobj3=extrapriceobj.getJSONObject(0);

Stringextrapricestr=obj3.getString("priceText");

extraprice.setText(extrapricestr);

}catch(JSONExceptione){

e.printStackTrace();

}

ImageLoaderloader=newImageLoader(MyApplication

.getHttpQueues(),newBitmapCache());

imageview.setImageUrl(InfoActivity.url,loader);

}

@Override

publicvoidonMyError(VolleyErrorerror){

Toast.makeText(InfoActivity.this,error.toString(),

3000).show();

}

});

}

/**

*商品详细信息页面的点击事件

*/

@Override

publicvoidonClick(Viewarg0){

switch(arg0.getId()){

caseR.id.btnbuy:

Stringurl="

Uriuri=Uri.parse(url.replace("{0}",item_id));

Intentit=newIntent(Intent.ACTION_VIEW,uri);

startActivity(it);

break;

caseR.id.btnstore:

addFav();

break;

caseR.id.btnshowstore:

Intentintent=newIntent(InfoActivity.this,FavoritesActivity.class);

startActivity(intent);

break;

}

}

/**

*收藏夹商品数据放入sqllite中进行添加进入收藏夹的操作

*/

privatevoidaddFav(){

SQLiteDatabasedb=openOrCreateDatabase("goods.db",MODE_PRIVATE,null);

//创建goods数据表

db.execSQL("createtableifnotexistsgoods(_idintegerprimarykeyautoincrement,titletextnotnull,pricetextnotnull,sellcounttextnotnull,imgurltextnotnull,item_idtextnotnull)");

//查询数据库中有没有该商品

Cursorc=db.rawQuery("select*fromgoodswhereitem_id='"

+InfoActivity.item_id+"'",null);

//如果没有,则插入该数据

if(c.getCount()==0){

db.execSQL("insertintogoods(title,price,sellcount,imgurl,item_id)values('"

+title.getText().toString()

+"','"

+price.getText().toString()

+"','"

+sellcount.getText().toString()

+"','"

+InfoActivity.url

+"','"+InfoActivity.item_id+"')");

Toast.makeText(InfoActivity.this,"该商品收藏成功",3000).show();

}else{

Toast.makeText(InfoActivity.this,"该商品已被收藏",3000).show();

}

c.close();

db.close();

}

}

3.MainActivity

publicclassMainActivityextendsActivity{

privateEditTextet;

privateImageButtonbtnSearch;

privateListViewlistView;

privateListmData;

privateMyAdapteradapter;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

init();

clickListen();

}

/**

*初始化

*/

privatevoidinit(){

et=(EditText)findViewById(R.id.editText1);

btnSearch=(ImageButton)findViewById(R.id.imageButton1);

listView=(ListView)findViewById(R.id.listView1);

}

/**

*点击事件

*/

privatevoidclickListen(){

btnSearch.setOnClickListener(newOnClickListener(){

@Override

publicvoidonClick(Viewarg0){

volley_Get();

}

});

AdapterView.OnItemClickListenerlistViewListener=newAda

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

当前位置:首页 > 小学教育 > 数学

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

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