Home >  > Win8 ئەپ ئېچىش دەرىسلىكى(7) – تەڭشەك ساقلاش ۋە ئوقۇپ ئېلىش

Win8 ئەپ ئېچىش دەرىسلىكى(7) – تەڭشەك ساقلاش ۋە ئوقۇپ ئېلىش

8

ئەسسالامۇ - ئەلەيكۇم، ئەزىزلەر! ئۈچ كۈنلۈك دەم ئېلىشىڭلار تازا كۆڭۈللۈك ئۆتكەندۇ - ھە؟! پىقىرمۇ بۇ ئۈچ كۈن جەريانىدا غەۋغالاردىن خالىي ئولتۇرۇپ، بىر كىتابنى كۆرۈپ تۈگىتىپتىمەن، زىرىككەنلەردە مونۇ نەرسە بىلەن ئىتىشىپ، ئاز - تولا نەتىجە قازانغانمۇ بوپتىمەن!
ھەراس، سىلەرچە تۇنجى ئۇيغۇرچە ئەپنى زادى قايسى مەزمۇندا يازسام بولار؟ ھازىر بىزدە ئەڭ چوڭ ئىھتىياج نېمە؟ ئەزىزلەر ئويلىغىنىڭلارنى ئوتتۇرىغا قويۇپ باقساڭلا، مەن شۇ پىكىرلەرنى رەتلەپ، راۋرۇس بىر ئەپ يېزىپ چىقىشقا بەل باغلايمىكىن دېگەن ئىدىم( ھازىرغىچە ھىسابلىغۇچ، بىرلىك ئايلاندۇرغۇچ، خاتىرە دەپتەر، تېلىفۇن خاتىرىسى، دەرىس سېتكىسى، كىتاب ئوقۇغۇچ... قاتارلىق بىر قاتار ئەپلەرنىڭ ئەڭ ئىپتىدائىي نۇسخىسىنى يېزىپ باققان بوپتىمەن. كىينچە بۇلارنىمۇ ئورتاقلىشىمىز). خوش، شەخسىي پاراڭنى موشۇ يەردە توختىتىپ، بۈگۈنكى دەرىسىمىزنىڭ پايانىغا كىلەيلى:
ئادەتتە مەلۇم ئەپنى ئىشلەتكەندە ئۆزىمىنىڭ ئىھتىياجىغا قاراپ تەڭشەش ئېلىپ بارىمىز ياكى مەلۇم ھالەتتە ئىشلىتىپ تاقايمىز، ئاندىن قايتا قوزغاتقاندا تاقىغاندىن ئىلگىركى ئاشۇ ھالەتتە ئېچىلىشىنى ئۈمۈد قىلىمىز. بۇنىڭ ئۈچۈن ئەپنى تاقىغاندا بارلىق تەڭشەك ۋە نۆۋەتتىكى ئىجرا ئۇچۇرلىرى ساقلىنىشى كىرەك، ئەلۋەتتە بۇ ئىقتىدارنى ئەمەلگە ئاشۇرۇش تامامەن مومكىن.
VS نىڭ ئۈستى قورال بالدىقىدىكى 对象/浏览器视图 كونۇپكىلىرىنى باسسىڭىز نۇرغۇن مەنبەلەر تېزىملىكى كۆرۈنىدۇ. بۇنىڭ ئىچىدىن Windows نى تاللىسىڭىز يەنە بىرتالاي تېزىملىكلەر ئىچىلىدۇ(مانا موشۇلار بىز ئادەتە كود قىسمىغا ئۇلاپ ئىشلىتىدىغان بۇيرۇق رايۇنى - «命令空间» دىن ئىبارەت)، ئۇنىڭ ئىچىدە Windows.Storage ناملىق يەنە بىر ھۆججەت بار، ئۇنى چەكسىڭىز ئاستىدا نۇرغۇن تېزىملىك كۆرۈنىدۇ، بۇنىڭ ئىچىدىكى ApplicationData (ئەپ ئىجرا ئۇچۇرلىرى ساقلىنىدىغان ئۇچۇر خالتىسى) نى چەككەندىن كىيىن ئوڭ تەرەپتە يەنە تىزىملىك كۆرۈنىدۇ، ئۇنىڭ ئىچىدە نۇرغۇن خاسلىقلار بار، مەسىلەن Current خاسلىقى دەل بىز نۆۋەتتە ئىجرا قىلىنىۋاتقان ئەپ ۋەزىپىسىنى كۆرسىتىدۇ. دېمەك بىز دەل موشۇ خاسلىقنى تاللاش ئارقىلىق ئەپ ئىجرا ئەھۋالىنىڭ نۆۋەتتىكى ئۇچۇرلىرىنى يۇقارقى ئادرىس بويىچە ساقلاش مەقسىتىگە يېتىمىز، ئەلۋەتتە ئۇچۇرلارنى ئوقۇپ ئالغاندىمۇ موشۇ خىل لوگىكا بويىچە ئېلىپ بېرىلىدۇ. يۇقارقى كۆزنەكلەرنىڭ ھالىتى تۆۋەندىكى رەسىمدەك:

يۇقارقىلاردىن ئازراق بىر نەرسە چۈشەنگەن بولسىڭىزلا تۆۋەندە ماڭا ئەگىشىپ قول سېلىپ ئىشلىيەلىشىڭىزگە گەپ كەتمەيدۇ. ئۇنداقتا ئىش باشلاپ كىتەيلى:
ئاۋۋال خالىغان نامدا يىڭى بەت قۇرۇپ MainPage.xaml نى ئېچىپ تۆۋەندىكىدەك پاسون ئورۇنلاشتۇرۇڭ، كودى تۆۋەندىكىدەك بولسۇن:  

[codesyntax lang="xml"]

  
          
              
              
          
            
        مىسال ئۈچۈن    
            
            
            ئوڭ تەرەپتىكى مەلۇم بىر تۈرنى تاللاپ، ھۆججەتنى ساقلاپ چېكىنىڭ ۋە قايتا قوزغىتىڭ.    
            
            
            
          مەزمۇننى ساقلاپ قايتا قوزغاتقاندىنكىيىن بۇلارنىڭ ساقلانغانلىقىنى ھاياجان ئىچىدە بايقايسىز.    
          
          
          
            بىرىنچى تۈر  
            ئېككىنچى تۈر  
            ئۈچىنچى تۈر  
            تۆتىنچى تۈر  
            بەشىنچى تۈر  
          

[/codesyntax]

 

دەرىسلىكىلەرنى بېشىدىن باشلاپ كۆرىۋاتقانلا بولسىڭىز، يۇقارقى كودلارنى چۈشىنىشىڭىزگە گەپ كەتمەيدۇ. ئاۋۇ ListBoxقا دېققەت قىلساق SelectionChanged ئىش قوشۇلدى – دە مۇناسىپ خاسلىق بېرىلدى. دېمەك تېزىملىك مەزمۇنىغا "تاللانغادا ئۆزگىرىش" ئۈنۈمى قوشۇلدى. تۆۋەندە بىز ئاشۇ تېزىملىكنىڭ خالىغان بىرىنى تاللاپ قويۇپ(يەنى "تاللانغاندا ئۆزگىرىش" تىن ئىبارەت خاسلىقنى مەلۇم بىر تېزىملىكتە ئىجرا قىلدۇرۇپ) ئەپنى تاقايمىز، ئاندىن قايتا قوزغىتىمىز بۇ ۋاقىتتا يەنىلا بايا بىز تاللاىغان تېزىملىك تاللىنىش ھالىتىدا تۇرغان بولىشى كىرەك. ئۇنداقتا Cs كود ئارقىلىق بۇ ئىقتىدارنى ھاسىللاشقا باشلايلى:

لايىھە رايۇنىدىكى تېزىملىك رايۇنىدىن خالىغان بىر تېزىمنى تاللاپ چاشقىنەك بىلەن ئىتتىك قوش چەكسىڭىز SelectionChanged تىن ئىبارەت ئىشنىڭ ئارقا كود قىسمى ئېچىلىدۇ(يەنى MainPage.cs ئىچىدە) تۆۋەندىكى كودنى ئاشۇ كونۇپكىنىڭ بۇيرۇق كودى قىسمىغا چاپلاڭ(يەنى ھىلىقى ئىككى چوڭ تىرناق ئارىسىغا) . تۆۋەندىكى رەسىمدىكىدەك:

[codesyntax lang="csharp"]

ListBox lb = sender as ListBox;  
            if (lb != null)  
            {  
                if (lb.SelectedIndex > -1)  
                {  
                    ApplicationDataContainer myContainer = ApplicationData.Current.LocalSettings;  
                    myContainer.Values["index"] = lb.SelectedIndex;

[/codesyntax]

 

يەنى بۇ كودتا: ئەڭ بېشىدا بىز كۆرگەن ئادرىس بويىچە تېزىم تاللىغاندىكى ئىش ئۇچۇرلىرىنى ساقلاش مەقسىتىگە يەتتۇق. بۇ كودنى ئىزىپ چۈشەندۈرۈپ ئولتۇرغۇم يوق، چۈشەنمىگەنلەر ئىزدىنىڭلار!
ئەپ ئىجرا ئۇچۇرلىرىنى ساقلىغان ئىكەنمىز ئەمدى ئەپنى قايتا قوزغاتقاندىن كىيىن بۇ ئۇچۇرلارنى يەنە ئوقۇپ ئېلىشىمىز كىرەك. بۇنى تۆۋەندىكى كود ئارقىلىق ھەل قىلىمىز! چاپلاش ئورنى تۆۋەندىكى رەسىمدىكىدەك بولسۇن:

[codesyntax lang="csharp"]

ApplicationDataContainer container = ApplicationData.Current.LocalSettings;  
            if (container.Values.ContainsKey("index"))  
            {  
                this.MyListBox.SelectedIndex = (int)container.Values["index"];  
            }  
            else  
            {  
                this.MyListBox.SelectedIndex = 0;

[/codesyntax]

  

يۇقارقىلارنى ئورۇنداپ بولۇپ قارسىڭىز يەنە خاتالىق كۆرۈنىشى ئېنىق، چۈنكى بىز تارتىپ ئىشلەتكەن Storage ناملىق بۇيرۇق رايۇنىنى ئۇلىمىدۇق. ئۇنداقتا يۇقارقى بەتنىڭ ئەڭ ئۈستىدىكى ئۇلانمىلار قاتارىغا using Windows.Storage; دىن ئىبارەت مۇنۇ نام بوشلۇقىنى ئۇلاپ قويۇڭ. ئىش تامام - ۋەسسالام. ئەمدى ئىجرا قىلىپ، خالىغان بىر تېزىمنى تاللاپ قويۇپ ئەپنى قايتا قوزغاتسىڭىز تاقاشتىن ئاۋۋال تاللاپ قويغان تېزىم تاللاقلىق ھالەتنى كۆرىسىز. دېمەك ئەپ ئىجرا ئۇچۇرلىرى ئەسلى ھالەتكە قايتىپ كەتمىگەن. ئۈنۈمى تۆۋەندىكى رەسىمدىكىدەك:

يۇقاردا بىز پەقەت ListBox قىسقۇچىغىلا بۇ ئىقتىدارنى جايلاشتۇردۇق، ئادەتتە ئۆزگىرىشچان ئۇچۇرلارنى ساقلايدىغان ھەرقانداق قىسقۇچقا موشۇ ئۇسۇل بويىچە قوللىنىشقا بولىدۇ. بۇ ئۇسۇلنى جانلىق ئىشلىتىپ كۆرۈڭلار.

بۇلارنىمۇ ياقتۇرۇپ قالىسىز

ئۆز - ئۆزۈمنى ئىزدەش بوسۇغىسىدا...


ئۈنچىلەر (8)
نەقىللەر (0)
  1. غۇلامجان [ جۇغلانما: 9 نومۇر ] unknowunknow دىۋان 2013/09/23 13:05

    تەشنا ئەپەندى بۇ دەرىسلكتە بىرەر ئىغىزمۇ چۈشەندۈرۈش يوققۇ؟

  2. غۇلامجان [ جۇغلانما: 9 نومۇر ] unknowunknow گىلەم 2013/09/26 18:01

    ھە،ئەمدى نۇرمال كۆرۇندى.

  3. سالىھ بىگ [ جۇغلانما: 4 نومۇر ] unknowunknow كىگىز 2013/12/13 21:30

    تەشنا بىگىم بىر فىلىملىك قىلىۋەتكەن بولساڭلار قولاڭلىغا سۆيۈپ قوياتتىم . يىقىندا نوكىيا لۇمبىيو 925دىن بىر ئالاي دىگەن . فىلىملىك قىلساڭلار بولمامدۇ تەشنايى …

    • تەشنايى [ بىلوگ ھۆكۈمدارى ] unknowunknow @ سالىھ بىگ 2013/12/13 22:47

      خەپ موشۇ گەپتىن تەسىرلىنىپ بولسىمۇ شۇنداق قىلمىسام… بۇرۇنمۇ ئويلاشقان، بىراق كومپىيوتېرىم كونا بوپ قىلىپ ئامال بولمىغانتى، ئەمدى بۇ مەسىلىمۇ ھەل بولدى. ئاللاھ خالىسا، كىيىنكى قىسىملىرىنى سىنلىق ئىشلىشىم مومكىن!

      • سالىھ بىگ [ جۇغلانما: 4 نومۇر ] unknowunknow @ تەشنايى 2013/12/14 10:32

        ۋاي ۋاي ماندا بولسا ھەقىەتەن ياخشى ھەم چۈشىنىشلىك بولىدۇدە . غەيرەت قىلىڭلار . بلوگىڭلادا چىكىپ قوياي دىسەم ئىلان يوقمۇ نىمە . بوسا مۇشۇندا بلوگلارنىڭ ئىلانىنى چەكسە ئادەم :mrgreen:
        ئاندىن بۇ سىستىمىغا شۇ c++ ياكى c تىلى بىلەن پروگىرامما يازىدىغان گەپما …visa了stodio دا يازىمىزما

  • كۆچۈرۈلمە يوق

ئۈنچە قالدۇرۇش