蘇州科技學(xué)院移動(dòng)互聯(lián)網(wǎng)開發(fā)技術(shù)大作業(yè)_第1頁
蘇州科技學(xué)院移動(dòng)互聯(lián)網(wǎng)開發(fā)技術(shù)大作業(yè)_第2頁
蘇州科技學(xué)院移動(dòng)互聯(lián)網(wǎng)開發(fā)技術(shù)大作業(yè)_第3頁
蘇州科技學(xué)院移動(dòng)互聯(lián)網(wǎng)開發(fā)技術(shù)大作業(yè)_第4頁
蘇州科技學(xué)院移動(dòng)互聯(lián)網(wǎng)開發(fā)技術(shù)大作業(yè)_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、文檔供參考,可復(fù)制、編制,期待您的好評(píng)與關(guān)注! 蘇州科技學(xué)院電子與信息工程學(xué)院移動(dòng)互聯(lián)網(wǎng)開發(fā)技術(shù)大作業(yè)報(bào)告專業(yè)年級(jí)班級(jí) 學(xué)號(hào) 姓名 成績2015年6月19日19 / 21大作業(yè)任務(wù)完成以下任務(wù)(時(shí)間一周)。1、剪刀石頭布游戲要求:(1)人機(jī)對(duì)弈;(2)人人對(duì)弈;2、新聞閱讀軟件要求:(1)讀取新浪國內(nèi)新聞欄目的新聞列表;(2)閱讀指定列表項(xiàng)的新聞;【任務(wù)1】1 需求分析1.1用戶需求不同年齡段的人都可以玩這款游戲界面友好、簡單易用1.2功能需求人和人之間能進(jìn)行對(duì)戰(zhàn)人和計(jì)算機(jī)之間能進(jìn)行對(duì)戰(zhàn)人人對(duì)戰(zhàn)和人機(jī)對(duì)戰(zhàn)界面可以切回主界面2 系統(tǒng)分析與建模2.1概要設(shè)計(jì)2.1.1系統(tǒng)用例圖2.1.2系統(tǒng)類圖2

2、.1.3系統(tǒng)時(shí)序圖2.1.4系統(tǒng)活動(dòng)圖3 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)人人對(duì)戰(zhàn)界面Second_main.xml3.1界面設(shè)計(jì)模式選擇界面Activity_main.xml人機(jī)對(duì)戰(zhàn)界面Third_main.xml3.2模塊設(shè)計(jì)3.2.1模式選擇模塊本模塊是用戶進(jìn)入程序的入口??梢赃x擇人機(jī)對(duì)戰(zhàn)或者人人對(duì)戰(zhàn)。3.2.2人機(jī)對(duì)戰(zhàn)模塊為了保證公平性,人人對(duì)戰(zhàn)模塊只有一個(gè)界面,點(diǎn)擊"開始游戲"按鈕人人對(duì)戰(zhàn)的雙方同時(shí)由系統(tǒng)隨機(jī)出拳,其中一人點(diǎn)擊"結(jié)束"按鈕結(jié)束本局游戲并計(jì)算比分3.2.3人人對(duì)戰(zhàn)模塊點(diǎn)擊剪刀/石頭/布按鈕后人出相應(yīng)的拳,系統(tǒng)隨機(jī)出拳,雙方出拳后本局游戲自動(dòng)結(jié)束并計(jì)

3、算比分,"結(jié)束"按鈕變成"開始"按鈕【任務(wù)2】1 需求分析1.1用戶需求使人們隨時(shí)了解國內(nèi)新聞;簡單易用;1.2功能需求讀取新浪國內(nèi)新聞欄目的新聞列表;閱讀指定列表項(xiàng)的新聞;2 系統(tǒng)分析與建模2.1概要設(shè)計(jì)2.1.1系統(tǒng)用例圖2.1.2系統(tǒng)類圖2.1.3系統(tǒng)時(shí)序圖2.1.4系統(tǒng)活動(dòng)圖3 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)3.1界面設(shè)計(jì) 閱讀新聞界面Activity_show_news.xml主界面Activity_main.xmlNews_item.xml3.2 模塊設(shè)計(jì)3.2.1讀取新聞列表模塊讀取新聞列表模塊通過解析新浪新聞的XML文件獲取新聞標(biāo)題3.2.2 閱讀新聞模

4、塊閱讀新聞模塊通過解析新浪新聞的XML文件讀取新聞的部分內(nèi)容,并提供新聞原文鏈接供用戶查閱,另有返回按鈕可返回主界面查看其他新聞3.3 核心模塊的實(shí)現(xiàn)代碼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.AsyncHttpResp

5、onseHandler;import android.app.Activity;import android.content.Intent;import 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;impo

6、rt android.widget.ListView;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity public final String RSS_URL = "private ListView lv_news;private List<NewsInfo> newsInfos;private class NewsAdapter extends BaseAdapterOverridepublic int getCoun

7、t() return newsInfos.size();Overridepublic Object getItem(int position) / TODO Auto-generated method 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.infl

8、ate(MainActivity.this, R.layout.news_item, null);TextView tv_title=(TextView) view.findViewById(R.id.tv_title);NewsInfo newsInfo=newsInfos.get(position);tv_title.setText(newsInfo.getTitle();return view;Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setC

9、ontentView(R.layout.activity_main);lv_news=(ListView) findViewById(R.id.lv_news); /創(chuàng)建AsyncHttpClient實(shí)例AsyncHttpClient asyncHttpClient = new AsyncHttpClient(); /使用GET方式請(qǐng)求 asyncHttpClient.get(RSS_URL, new AsyncHttpResponseHandler() public void onSuccess(String content) /訪問成功super.onSuccess(content); b

10、yte bytes = content.getBytes(); /將Byte數(shù)組轉(zhuǎn)換成輸入流ByteArrayInputStream bais = new ByteArrayInputStream(bytes); /調(diào)用NewsInfoService工具類解析xml文件newsInfos = NewsInfoService.getNews(bais);if (newsInfos = null) / 解析失敗 彈出toastToast.makeText(MainActivity.this, "解析失敗", 0).show(); else / 更新界面lv_news.setAd

11、apter(new NewsAdapter();lv_news.setOnItemClickListener(new AdapterView.OnItemClickListener() Overridepublic void onItemClick(AdapterView<?> parent,View view, int position, long id) Intent intent = new Intent(MainActivity.this, ShowActivity.class);Bundle b = new Bundle(); b.putString("titl

12、e", newsInfos.get(position).getTitle(); b.putString("discription", newsInfos.get(position).getDescription(); b.putString("link", newsInfos.get(position).getLink(); b.putString("pubdate", newsInfos.get(position).getPubdate(); intent.putExtras(b); startActivity(inten

13、t); ); /請(qǐng)求失敗public void onFailure(Throwable error, String content) super.onFailure(error, content);Log.e("error",RSS_URL);Log.e("error", error.toString();Toast.makeText(MainActivity.this, "請(qǐng)求失敗", 0).show(););private void fillData() /創(chuàng)建AsyncHttpClient實(shí)例AsyncHttpClient as

14、yncHttpClient = new AsyncHttpClient(); /使用GET方式請(qǐng)求 asyncHttpClient.get(RSS_URL, new AsyncHttpResponseHandler() public void onSuccess(String content) /訪問成功super.onSuccess(content); byte bytes = content.getBytes(); /將Byte數(shù)組轉(zhuǎn)換成輸入流ByteArrayInputStream bais = new ByteArrayInputStream(bytes); /調(diào)用NewsInfoSe

15、rvice工具類解析xml文件newsInfos = NewsInfoService.getNews(bais);if (newsInfos = null) / 解析失敗 彈出toastToast.makeText(MainActivity.this, "解析失敗", 0).show(); else / 更新界面lv_news.setAdapter(new NewsAdapter(); /請(qǐng)求失敗public void onFailure(Throwable error, String content) super.onFailure(error, content);Log

16、.e("error",RSS_URL);Log.e("error", error.toString();Toast.makeText(MainActivity.this, "請(qǐng)求失敗", 0).show(););NewsInfo.javapackage com.example.sinanews;public class NewsInfo private String title;/ 標(biāo)題private String description;/ 描述private String link;/ 鏈接private String pubda

17、te;/ 出版時(shí)間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;public void setTitle(String title) this.title = tit

18、le;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 pubdate;public void setPubdate(String pubdate) th

19、is.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.XmlPullParserException;import org.xmlpull.v1.XmlPullParserFactory;pu

20、blic class NewsInfoService public static List<NewsInfo> getNews(InputStream is) NewsInfo i = null; List<NewsInfo> list = null; XmlPullParserFactory factory; try factory = XmlPullParserFactory.newInstance(); XmlPullParser parser; parser = factory.newPullParser(); parser.setInput(is, "

21、;UTF-8"); int eventType = parser.getEventType(); /產(chǎn)生第一個(gè)事件 while (eventType != XmlPullParser.END_DOCUMENT) / 只要不是文檔結(jié)束 String name = parser.getName(); / 獲取解析器當(dāng)前指向的元素名稱 switch (eventType) case XmlPullParser.START_DOCUMENT: list = new ArrayList<NewsInfo>(); break; case XmlPullParser.START_TAG

22、: if ("item".equals(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".equa

23、ls(name) i.setDescription(parser.nextText(); break; case XmlPullParser.END_TAG: if ("item".equals(name) list.add(i); i = null; eventType = parser.next();/ 進(jìn)入下一個(gè)元素 catch (XmlPullParserException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); return list; ShowActivity.java

24、package 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 class ShowActivity extends Activity private TextView textView;private

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論