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

下載本文檔

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

文檔簡(jiǎn)介

1、蘇州科技學(xué)院電子與信息工程學(xué)院移動(dòng)互聯(lián)網(wǎng)開發(fā)技術(shù)大作業(yè)報(bào)告專業(yè)年級(jí)班級(jí) 學(xué)號(hào) 姓名 成績(jī)2015年6月19日19大作業(yè)任務(wù)完成以下任務(wù)(時(shí)間一周)。1、剪刀石頭布游戲要求:(1)人機(jī)對(duì)弈;(2)人人對(duì)弈;2、新聞閱讀軟件要求:(1)讀取新浪國(guó)內(nèi)新聞欄目的新聞列表;(2)閱讀指定列表項(xiàng)的新聞;【任務(wù)1】1 需求分析1.1用戶需求不同年齡段的人都可以玩這款游戲界面友好、簡(jiǎn)單易用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.1.3系統(tǒng)時(shí)序圖2.1.4系統(tǒng)活動(dòng)圖3 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)人

2、人對(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ì)算比分,結(jié)束按鈕變成開始按鈕【任務(wù)2】1 需求分析1.1用戶需求使人們隨時(shí)了解國(guó)內(nèi)新聞;簡(jiǎn)單易用;1.2功

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

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); /創(chuàng)建AsyncHttpClien

9、t實(shí)例AsyncHttpClient asyncHttpClient = 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(

10、bytes); /調(diào)用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); ); /請(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(Mai

13、nActivity.this, 請(qǐng)求失敗, 0).show(););private void fillData() /創(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); byte bytes = content.getB

14、ytes(); /將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.setAdapter(new NewsAdapter(); /請(qǐng)求失敗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, 請(qǐng)求失敗, 0).show(););NewsInfo.javapackage com.example.sinanews;public class NewsInfo private String title;/ 標(biāo)題private String description;

16、/ 描述private String link;/ 鏈接private String pubdate;/ 出版時(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;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(); /產(chǎn)生第一個(gè)事件 while (eventType != XmlPullParser.END_DOCUMENT) / 只要不是文檔結(jié)束 String name = parser.getName(); / 獲取解析器當(dāng)前指向的元素名稱 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();/ 進(jìn)入下一個(gè)元素 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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論