蘇州科技學院移動互聯網開發技術大作業_第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

提交評論