久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4801|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

在不同的Activity之間傳遞數(shù)據(jù)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:72008 發(fā)表于 2015-1-12 01:12 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
    在Android中傳遞數(shù)據(jù)的方法非常多,主要學(xué)習(xí)了四種:
    1.通過Intent傳遞數(shù)據(jù)
    2.通過靜態(tài)變量傳遞數(shù)據(jù)
    3.通過剪切板傳遞數(shù)據(jù)
    4.通過全局變量傳遞數(shù)據(jù)
一、通過Intent傳遞數(shù)據(jù)
    這是最常用的一種數(shù)據(jù)傳遞的方法。通過Intent.putExtra()方法可以將簡單類型的數(shù)據(jù)或者可序列化的對象保存在Intent對象中,然后在目標(biāo)Activity中使用getXxx(getInt、getString等)方法獲得這些數(shù)據(jù)。
    在當(dāng)前的Activity代碼中:
    Intent intent = new Intent();
    intent.setClass(TransmitDataMainActivity.this,activity1.class);//TransmitDataMainActivity是目前的窗口,activity是目標(biāo)窗口
                                            intent.putExtra("Name", "張三");
                                            intent.putExtra("Age", "22");
                                            intent.putExtra("Sex", "男");
                                            startActivity(intent);//開始跳轉(zhuǎn)
    在目標(biāo)Activity代碼中:
    String Name = intent.getStringExtra("Name");
    String Age    = intent.getStringExtra("Age");
    String Sex    = intent.getStringExtra("Sex");
二、使用靜態(tài)變量傳遞數(shù)據(jù)
    雖然使用Intent對象可以很方便的傳遞數(shù)據(jù),這也是官方推薦的方式,但是Intent有他的局限性,Intent無法傳遞不能序列化的對象,也就是沒有實現(xiàn)java.io.Serializable接口的類創(chuàng)建的對象。例如,圖像Bitmap對象就無法通過Intent傳遞。
    可以在使用靜態(tài)變量進(jìn)行傳遞數(shù)據(jù)。如在目標(biāo)Activity(如Activity2)中:
    public static String Name;
    public static String Age;
    public static String Sex;
    在其他的Activity中便可以使用Activity2.Name、Activity2.Age、Activity.Sex就可以訪問來實現(xiàn)數(shù)據(jù)的傳遞。
三、使用剪切板傳遞數(shù)據(jù)
    由于剪切板只能存儲簡單類型數(shù)據(jù)以及可序列化的對象,對于某些不可序列化的對象如果可以將其轉(zhuǎn)化為字節(jié)流,也可以將這些對象保存在剪切板中。
四、使用全局對象傳遞數(shù)據(jù)
    雖然使用靜態(tài)變量可以傳遞任意類型的數(shù)據(jù),但是官方不建議這么做。如果在類中大量的使用靜態(tài)變量(尤其是使用很占資源的變量,如Bitmap對象)可能會導(dǎo)致內(nèi)存溢出,而且還可能因為靜態(tài)變量在很多類中出現(xiàn)而造成代碼難以維護(hù)和混亂的狀況。全局對象可以完全取代靜態(tài)變量。
    Android中的 全局對象所對應(yīng)的類可以從android.app.Application繼承。下面就是一個典型的全局類。
    public class MyApp extends Application
    {
        public String country;
        public Data data = new Data();
    }
    在編寫完全局類之后,還需要通過<application>在AndroidManifext.xml中注冊。
    然后通過Activity.getApplicationContext()方法可以獲得全局對象。
    MyApp app = (MyApp) getApplicationContext();
    app.country = "中國";
    app.data.id  = "123";
    app.data.name = "人民";

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:72008 發(fā)表于 2015-1-12 01:13 | 只看該作者
    在實驗室呆了一天,看了Android的開發(fā)視頻教程,然后寫程序,改程序。
    今天粗略的學(xué)習(xí)了Activity的生命周期,還有Activity的布局。
    收獲:
    1.每一個控件的android:layout_width和android:layout_height都要設(shè)置,而且可以直接設(shè)置大小,不一定局限于給定的三個參數(shù),fill_parent、match_matchparent、wrap_content。
    2.通過findViewById(int)方法獲取控件的時候一定要注意是否已經(jīng)使用了setContentView()關(guān)聯(lián)了布局文件,而且只能獲取當(dāng)前View的控件,否則就會得到了Null,然后后面再調(diào)用對象方法的時候就會出現(xiàn)錯誤。
    3.聲明周期函數(shù)OnStop()只有當(dāng)一個Activity2完全遮擋住了Activity1的時候,才會調(diào)用Actitvity1的onStop()方法。
    4.對于字符資源最好統(tǒng)一的在res/values/strings.xml中定義,這樣如果更改字符資源的時候就可以牽一發(fā)動全身,不需要逐個的更改。
    5.建立工程文件的時候選擇的最低版本SDK會對代碼產(chǎn)生影響,因為有的API只能在高版本中使用!
    6.AndroidManifest.xml不可以更改名稱,每一個Activity都要在這個文件中進(jìn)行注冊。而且在此文件中可以聲明哪個Activity為主窗口,住過設(shè)置了多個主窗口,安裝程序的時候就會分別產(chǎn)生相應(yīng)的圖標(biāo)。
    感想:難點不在于功能的代碼實現(xiàn),而在于布局XML文件的編寫,弄出來一個好看的界面真心不容易,可能是我還是菜鳥的原因吧,干什么都不容易啊!下次再用什么App的時候別再噴了,其實做什么都是不容易的,尊重別人的勞動成果。
    下一步計劃:繼續(xù)學(xué)習(xí)XML文件布局,以及常用控件的使用,先把布局練習(xí)好,功能實現(xiàn)不急。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久精品视频一区二区三区 | 一区二区三区视频免费看 | 性国产丰满麻豆videosex | 福利一区视频 | 日韩在线看片 | 国产视频中文字幕 | 国产日韩欧美一区 | 欧美一级二级三级视频 | 亚洲av毛片 | 91精品国产综合久久久久久丝袜 | 91精品国产91久久久久福利 | 日韩精品视频在线 | 精产国产伦理一二三区 | 91麻豆精品国产91久久久久久 | 国产在线精品一区二区 | 可以在线看的黄色网址 | 精品国产一二三区 | 国产精品成人品 | 国产a区| 国产精品视频一二三区 | 精品国产乱码久久久久久丨区2区 | 五月婷婷亚洲 | 99tv成人影院 | 一区二区三区中文 | 青青草社区 | 在线一区 | 日韩在线视频一区 | 一区二区三区精品 | 亚洲精品免费视频 | 亚洲午夜视频 | 国产成人精品一区二区三区视频 | 国产91av视频 | 国产精品18久久久久久白浆动漫 | 国产精品夜间视频香蕉 | 可以免费观看的av片 | 亚洲一区在线播放 | 久久久91精品国产一区二区精品 | 五月综合激情婷婷 | 日韩手机在线看片 | 在线视频日韩 | 色综合国产 |