中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

大叔也說(shuo)Xamarin~Android篇~Activity之間傳遞數組

回到目錄

我們(men)在開(kai)發應用(yong)程序(xu)時,不可(ke)能只(zhi)使(shi)用(yong)一(yi)個Layout或者一(yi)個Activity,比(bi)如(ru)你個管理系統(tong),要求用(yong)戶先(xian)登陸(lu)然后再使(shi)用(yong),這時你至(zhi)少要有兩個activity吧,先(xian)登陸(lu)一(yi)個,然后成(cheng)功后需要跳(tiao)到別一(yi)個Activity,這就(jiu)遇到了多個Activity之間傳遞(di)數據的(de)問題,這也是今天我們(men)要說的(de)!

先聊聊Activity

首先(xian)一(yi)個(ge)(ge)Activity都(dou)會去繼承Activity類,這(zhe)個(ge)(ge)類里有(you)方法已經替我們(men)(men)實現(xian),我們(men)(men)可以把activity看(kan)做是(shi)MVC里的Action,即它(ta)負(fu)責渲染我們(men)(men)的頁(ye)面,組件(jian)頁(ye)面上所需(xu)要的數據等,我們(men)(men)先(xian)來(lai)看(kan)看(kan)一(yi)個(ge)(ge)Activity在渲染頁(ye)面時要經歷(li)的幾(ji)個(ge)(ge)事件(jian)(方法),這(zhe)些方法我們(men)(men)都(dou)可以在自定義(yi)的activity中去重寫它(ta)!

   onCreate:在這里(li)創建(jian)界面(mian),做一(yi)些數(shu)據的(de)初始(shi)化工作;

  onStart: 到這一步變成“用戶可見不可交互(hu)”的狀(zhuang)態;

  onResume:變成和用戶可交互的(de),(在(zai)Activity棧(zhan)(zhan)系統通(tong)過棧(zhan)(zhan)的(de)方(fang)式管(guan)理這些Activity,即當前Activity在(zai)棧(zhan)(zhan)的(de)最上端,運行完彈出(chu)棧(zhan)(zhan),則回到上一個Activity);

  onPause:到這(zhe)一步(bu)是可見但不可交互的,系(xi)統會(hui)停(ting)止動畫等消耗CPU的事情(qing)。從(cong)上文(wen)的描述已經(jing)知道,應該在這(zhe)里保存(cun)你的一些數(shu)據,因(yin)為這(zhe)個時候(hou)你的程序的優先級降               低,有(you)可能被系(xi)統收回。在這(zhe)里保存(cun)的數(shu)據,應該在onResume里讀出來。

  onStop:變得不可見 ,被(bei)下一個activity覆蓋(gai)了

  onDestroy:這是(shi)(shi)Activity被kill前最后(hou)一個(ge)被調(diao)用(yong)方法了(le),可能是(shi)(shi)其他類調(diao)用(yong)finish方法或者是(shi)(shi)系統為(wei)了(le)節省空間將(jiang)它暫(zan)時(shi)性的(de)(de)干掉,可以(yi)用(yong)isFinishing()來判斷(duan)它,如果你有              一個(ge)Progress Dialog在線程(cheng)中(zhong)運行,請在onDestroy里把他cancel掉,不然等線程(cheng)結(jie)束(shu)的(de)(de)時(shi)候(hou),調(diao)用(yong)Dialog的(de)(de)cancel方法會拋異常。

      onPause,onstop, onDestroy,三種狀態下 activity都有可能被系統kill 掉。

再說說Activity之間的數據傳遞

        /// <summary>
        /// 點選item 后的事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void listView_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
        {
            Toast.MakeText(this, "你(ni)選擇了 " + datas[e.Position].Title, ToastLength.Short).Show();

            Intent intent = new Intent(this, typeof(UserInfoLayoutActivity));
            /* 通過Bundle對(dui)象存儲需要傳遞的數據 */
            Bundle bundle = new Bundle();
            /*字(zi)符、字(zi)符串、布爾(er)、字(zi)節數(shu)組、浮(fu)點數(shu)等等,都(dou)可以傳(chuan)*/
            intent.PutExtra("Title", datas[e.Position].Title);
            intent.PutExtra("Desc", datas[e.Position].Desc);
            intent.PutExtra("AssistsCount", datas[e.Position].AssistsCount);
            intent.PutExtra("Fails", datas[e.Position].Fails);
            intent.PutExtra("Score", datas[e.Position].Score);
            intent.PutExtra("Level", datas[e.Position].Level);
            intent.PutExtra("Image", datas[e.Position].Image);
            /*把(ba)bundle對象assign給Intent*/

            intent.PutExtras(bundle);
            StartActivity(intent);
        }

上面代碼是在某個項目被單擊后所觸發的事件,而在事件建立了Intent對象,它是跨Activty傳值的基礎,之后PutExtra為它們賦值,它相當于一個hash表,OK,下面我們再來看看第二頁如何去接受這些數據

 

   protected override void OnCreate(Bundle savedInstanceState)
        {

            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.UserInfoLayout);//指定要(yao)去(qu)渲染的視圖(tu)     
            var listView = FindViewById<ListView>(Resource.Id.userInfoViewMain);
            listView.Adapter = new UserAdapter(this, new UserInfo
            {
                Title = Intent.GetStringExtra("Title"),
                Desc = Intent.GetStringExtra("Desc"),
                AssistsCount = Intent.GetIntExtra("AssistsCount", 0),
                Level = Intent.GetIntExtra("Level", 0),
                Fails = Intent.GetIntExtra("Fails", 0),
                Image = Intent.GetIntExtra("Image", 0),
                Score = Intent.GetIntExtra("Score", 0),
            });
        }

 

代(dai)碼中的(de)OnCreate是(shi)每個(ge)Activity所具有的(de)方法,即它是(shi)進入Activity后,第一個(ge)要執(zhi)行的(de)方法,這里一般是(shi)建(jian)立視圖(tu),初始化數據,加載PartialView,最(zui)后,我們看一下大(da)叔(shu)的(de)程序執(zhi)行的(de)最(zui)終(zhong)效果。

第二個頁面

呵(he)呵(he),怎么樣,挺有意思吧(ba)!

 回到目錄

posted @ 2015-12-10 22:42  張占嶺  閱讀(2068)  評論(1)    收藏  舉報