Himi 原創, 轉載請注明! 謝謝。
原文地址: http://blog.csdn.net/xiaominghimi/archive/2010/12/23/6094182.aspx
今天講下在Surfaceview中如何實現兩個或者多個Activity之間的切換與數據交互,為了更形象一些我做了一個游戲登錄界面的demo,其中對于輸入界面的布局這些我也是隨意寫了下,主要是實現功能并沒有花時間去美化,所以大家可以自己去xml或者代碼中去改變布局,每個小組件的寬高等。好了,下面先上圖(本人超愛~哆啦A夢,所以少不了用哆啦A夢的圖了,娃哈哈)
由于代碼中一共寫了三個類,這里不再全部貼出來,不方便;大家可以在文章的末尾去下載源碼;
兩個activity之間切換我概括的分為兩步:
1. 代碼實現切換操作。2.配置中聲明另外一個acitivity!
我們先看第一步:這里是觸屏處理中的一段代碼:
顯示定義一個intent 對象,Intent 這個類的機制是協助交互的,詳細的說明這里不多講;
Intent 中的putExtra()函數是起到兩個activity之間交互交互的,這個方法類似 hashtable 或者hashmap中的put是一樣的,第一個參數是key(索引) ,后一個參數volue(值),根據key我們可以得到對應的volue了。那么后面我也附上接受的處理。
Intent 中的setClass()函數也是傳入兩個參數,第一個是傳入當前實例的activity對象,后面一個參數指需要打開的activity這個類!然后我們就可以利用當前activity對象來啟動另外一個activity了。然后我們看下在另外一個activity是如何創建并且怎么接受數據的。
以上代碼可以看出,新建一個activity其實只需要繼承Activity以及重寫onCreate()方法即可。當然創建的還需要一步很重要的步驟,那么在第二步中會詳細說明,這里我們看下是如何接受之前的activity傳來數據的、。
Intent intent = this.getIntent();
count = (byte) intent.getIntExtra("count", 0);
接受也是很簡明易懂,創建一個Intent 意圖對象,調用來去getIntExtra函數得到之前傳來的數據,根據key!當然還有getStringExtra()等等函數都是類似,只是根據你傳入的數據不同選擇不同函數罷了。童鞋們應該注意的是getIntExtra中第二個參數是什么意思,其實就是一個對于找不到key相匹配的時候會默認return 0 ;
那么下面介紹第二步:在配置中聲明
當創建一個activity的時候我們必須去在AndroidMainFeset.xml中去生命我們創建的這個類是個Activity!下面附上xml中的code!
<!---->此符號是注釋
這里我們有兩個聲明方法,用注釋隔開了,上面一個聲明中還設定了一些屬性,theme顯示的形式,等等,其實最簡單的聲明也是可以的就像注釋下面那一句聲明就足以起到作用了。
當有新的activity的時候一定要去聲明;千萬不要忘記這一步。
備注:配置中有一屬性 ->android:screenOrientation 這是設置橫屏,所以豎屏中點擊會有問題,如果想豎屏顯示正常那么可以自行刪除xml中的 android:screenOrientation="landscape" 就可以了。
(推薦大家訂閱本博客,因為咱的更新速度可是很快的~娃哈哈)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
