




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版二年級數學下冊期末測試卷(含答案)
- 湖南省九校聯盟2025屆高三上學期第一次聯考-生物試題(含答案)
- 人教版(2019)高中化學必修第一冊第一章1.1物質的分類及轉化第一課時教案+學案+習題精煉(含答案)
- 第17課《短文兩篇》課件 2024-2025學年統編版語文七年級下冊
- 初中數學簡單的軸對稱圖形第2課時線段垂直平分線的性質課件 2024-2025學年七年級數學下冊北師大版2024
- 【核心素養】第2課《學做“快樂鳥”》第1課時《我很快樂和也有不開心的事》+公開課一等獎創新教案+素材
- 智能物流配送管理制度
- 八年級體育 教學設計 人教新課標版
- 高鉀血癥患者的護理
- 第一單元第1課《網絡發展簡述》教學設計 2023-2024學年浙教版(2020)初中信息技術八年級下冊
- 算法設計與分析 課件 7.10-回溯法 - 典型應用 - 兩種實現 - n皇后問題
- 防性侵安全教育課件
- 《食品儀器分析技術》項目七質譜法及其在食品分析中的應用
- 北京市2024年中考歷史真題試卷(含答案)
- 職業技能大賽-鴻蒙移動應用開發賽初賽理論知識考試及答案
- 2024年全國高考日語試卷(新題型)(含答案與解析)
- 部編版六年級下冊《第14課 文言文二則》2024年同步練習卷
- 報銷單據明細表Excel模板
- 2024-2030年中國低空監視雷達行業市場發展趨勢與前景展望戰略研究報告
- 學習《吳軍閱讀與寫作》 (50講 )
- 12J003《室外工程圖集》
評論
0/150
提交評論