苏州科技学院移动互联网开发技术大作业_第1页
苏州科技学院移动互联网开发技术大作业_第2页
苏州科技学院移动互联网开发技术大作业_第3页
苏州科技学院移动互联网开发技术大作业_第4页
苏州科技学院移动互联网开发技术大作业_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、苏州科技学院电子与信息工程学院移动互联网开发技术大作业报告专业年级班级 学号 姓名 成绩2015年6月19日19大作业任务完成以下任务(时间一周)。1、剪刀石头布游戏要求:(1)人机对弈;(2)人人对弈;2、新闻阅读软件要求:(1)读取新浪国内新闻栏目的新闻列表;(2)阅读指定列表项的新闻;【任务1】1 需求分析1.1用户需求不同年龄段的人都可以玩这款游戏界面友好、简单易用1.2功能需求人和人之间能进行对战人和计算机之间能进行对战人人对战和人机对战界面可以切回主界面2 系统分析与建模2.1概要设计2.1.1系统用例图2.1.2系统类图2.1.3系统时序图2.1.4系统活动图3 系统设计与实现人

2、人对战界面Second_main.xml3.1界面设计模式选择界面Activity_main.xml人机对战界面Third_main.xml3.2模块设计3.2.1模式选择模块本模块是用户进入程序的入口。可以选择人机对战或者人人对战。3.2.2人机对战模块为了保证公平性,人人对战模块只有一个界面,点击开始游戏按钮人人对战的双方同时由系统随机出拳,其中一人点击结束按钮结束本局游戏并计算比分3.2.3人人对战模块点击剪刀/石头/布按钮后人出相应的拳,系统随机出拳,双方出拳后本局游戏自动结束并计算比分,结束按钮变成开始按钮【任务2】1 需求分析1.1用户需求使人们随时了解国内新闻;简单易用;1.2功

3、能需求读取新浪国内新闻栏目的新闻列表;阅读指定列表项的新闻;2 系统分析与建模2.1概要设计2.1.1系统用例图2.1.2系统类图2.1.3系统时序图2.1.4系统活动图3 系统设计与实现3.1界面设计 阅读新闻界面Activity_show_news.xml主界面Activity_main.xmlNews_item.xml3.2 模块设计3.2.1读取新闻列表模块读取新闻列表模块通过解析新浪新闻的XML文件获取新闻标题3.2.2 阅读新闻模块阅读新闻模块通过解析新浪新闻的XML文件读取新闻的部分内容,并提供新闻原文链接供用户查阅,另有返回按钮可返回主界面查看其他新闻3.3 核心模块的实现代码

4、MainActivity.javapackage com.example.sinanews;import java.io.ByteArrayInputStream;import java.util.List;import com.example.sinanews.R;import com.loopj.android.http.AsyncHttpClient;import com.loopj.android.http.AsyncHttpResponseHandler;import android.app.Activity;import android.content.Intent;import

5、android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.ListView;import android.widget.TextView;import android.widg

6、et.Toast;public class MainActivity extends Activity public final String RSS_URL = private ListView lv_news;private List newsInfos;private class NewsAdapter extends BaseAdapterOverridepublic int getCount() return newsInfos.size();Overridepublic Object getItem(int position) / TODO Auto-generated metho

7、d stubreturn null;Overridepublic long getItemId(int position) / TODO Auto-generated method stubreturn 0;Overridepublic View getView(int position, View convertView, ViewGroup parent) View view=View.inflate(MainActivity.this, R.layout.news_item, null);TextView tv_title=(TextView) view.findViewById(R.i

8、d.tv_title);NewsInfo newsInfo=newsInfos.get(position);tv_title.setText(newsInfo.getTitle();return view;Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);lv_news=(ListView) findViewById(R.id.lv_news); /创建AsyncHttpClien

9、t实例AsyncHttpClient asyncHttpClient = new AsyncHttpClient(); /使用GET方式请求 asyncHttpClient.get(RSS_URL, new AsyncHttpResponseHandler() public void onSuccess(String content) /访问成功super.onSuccess(content); byte bytes = content.getBytes(); /将Byte数组转换成输入流ByteArrayInputStream bais = new ByteArrayInputStream(

10、bytes); /调用NewsInfoService工具类解析xml文件newsInfos = NewsInfoService.getNews(bais);if (newsInfos = null) / 解析失败 弹出toastToast.makeText(MainActivity.this, 解析失败, 0).show(); else / 更新界面lv_news.setAdapter(new NewsAdapter();lv_news.setOnItemClickListener(new AdapterView.OnItemClickListener() Overridepublic voi

11、d onItemClick(AdapterView parent,View view, int position, long id) Intent intent = new Intent(MainActivity.this, ShowActivity.class);Bundle b = new Bundle(); b.putString(title, newsInfos.get(position).getTitle(); b.putString(discription, newsInfos.get(position).getDescription(); b.putString(link, ne

12、wsInfos.get(position).getLink(); b.putString(pubdate, newsInfos.get(position).getPubdate(); intent.putExtras(b); startActivity(intent); ); /请求失败public void onFailure(Throwable error, String content) super.onFailure(error, content);Log.e(error,RSS_URL);Log.e(error, error.toString();Toast.makeText(Mai

13、nActivity.this, 请求失败, 0).show(););private void fillData() /创建AsyncHttpClient实例AsyncHttpClient asyncHttpClient = new AsyncHttpClient(); /使用GET方式请求 asyncHttpClient.get(RSS_URL, new AsyncHttpResponseHandler() public void onSuccess(String content) /访问成功super.onSuccess(content); byte bytes = content.getB

14、ytes(); /将Byte数组转换成输入流ByteArrayInputStream bais = new ByteArrayInputStream(bytes); /调用NewsInfoService工具类解析xml文件newsInfos = NewsInfoService.getNews(bais);if (newsInfos = null) / 解析失败 弹出toastToast.makeText(MainActivity.this, 解析失败, 0).show(); else / 更新界面lv_news.setAdapter(new NewsAdapter(); /请求失败public

15、 void onFailure(Throwable error, String content) super.onFailure(error, content);Log.e(error,RSS_URL);Log.e(error, error.toString();Toast.makeText(MainActivity.this, 请求失败, 0).show(););NewsInfo.javapackage com.example.sinanews;public class NewsInfo private String title;/ 标题private String description;

16、/ 描述private String link;/ 链接private String pubdate;/ 出版时间public NewsInfo() super();public NewsInfo(String title, String description, String link,String pubdate) super();this.title = title;this.description = description;this.link = link;this.pubdate = pubdate;public String getTitle() return title;pub

17、lic void setTitle(String title) this.title = title;public String getDescription() return description;public void setDescription(String description) this.description = description;public String getLink() return link;public void setLink(String link) this.link = link;public String getPubdate() return p

18、ubdate;public void setPubdate(String pubdate) this.pubdate = pubdate;NewsInfoServices.javapackage com.example.sinanews;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.xmlpull.v1.XmlPullParser;import org.xmlpull.v1.XmlPullParserExcepti

19、on;import org.xmlpull.v1.XmlPullParserFactory;public class NewsInfoService public static List getNews(InputStream is) NewsInfo i = null; List list = null; XmlPullParserFactory factory; try factory = XmlPullParserFactory.newInstance(); XmlPullParser parser; parser = factory.newPullParser(); parser.se

20、tInput(is, UTF-8); int eventType = parser.getEventType(); /产生第一个事件 while (eventType != XmlPullParser.END_DOCUMENT) / 只要不是文档结束 String name = parser.getName(); / 获取解析器当前指向的元素名称 switch (eventType) case XmlPullParser.START_DOCUMENT: list = new ArrayList(); break; case XmlPullParser.START_TAG: if (item.e

21、quals(name) i = new NewsInfo(); if (i != null) if (title.equals(name) i.setTitle(parser.nextText(); if (link.equals(name) i.setLink(parser.nextText(); if (pubDate.equals(name) i.setPubdate(parser.nextText(); if (description.equals(name) i.setDescription(parser.nextText(); break; case XmlPullParser.E

22、ND_TAG: if (item.equals(name) list.add(i); i = null; eventType = parser.next();/ 进入下一个元素 catch (XmlPullParserException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); return list; ShowActivity.javapackage com.example.sinanews;import com.example.sinanews.R;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.TextView;public cl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论