成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

WindowsPhone項目組織結(jié)構(gòu)&簡單登陸例子(下)

移動開發(fā)
這里主要是軟件生命周期中事件實現(xiàn),已經(jīng)保存全局變量或者數(shù)據(jù)等(比如:登陸用戶賬號,密碼等),同時也包括了軟件頂級容器:PhoneApplicationFrame。以上可以看出App主要是保存或者是定義全局的地方,你寫程序的時候可以考慮需要保存全局的。

上一篇WindowsPhone項目組織結(jié)構(gòu)&簡單登陸例子(上)中 已經(jīng)介紹了WP7項目組織結(jié)構(gòu),那么現(xiàn)在就讓我們來進行實際開發(fā)吧,本來打算寫一個helloworld的,但是這未免太對不起觀眾了,于是就改成做個登 陸的例子,當(dāng)然這個登陸例子我們暫時不連接遠程服務(wù),就在文件中寫死吧,以后講到遠程服務(wù)的時候必然會使用到的,這個登陸例子也可以作為后續(xù)開發(fā)使用。

一:新建一個Window phone application項目。

       因為我們是需要做登陸,那么必定是有用戶賬號,密碼的,那么就建立一個類UerInfo.cs   ,添加屬性

        public String userName;
        public String passworld;

二:我們的登陸是要訪問服務(wù)端進行驗證的,但是呢,我們現(xiàn)在還不需要服務(wù)器端,當(dāng)然,我們可以模擬后臺服務(wù)器端登陸驗證:

      1:我們寫一個接口,定義用戶模塊的一些方法,這里有一個登陸方法, UsetInfo Login(string userName,string password);

      2:定義個類,實現(xiàn)該接口的方法,比如上面登陸方法:

  1. public UsetInfo Login(string userName, string password)  
  2.         { 
  3.             UsetInfo info = null
  4.             if (userName.Equals("sa") && password.Equals("123456")) 
  5.             { 
  6.                 info=new UsetInfo(); 
  7.                 info.userName="sa"
  8.                 info.passworld="123456"
  9.             } 
  10.             return info; 
  11.         } 

三:我們模擬的服務(wù)器端數(shù)據(jù)寫好后,就開始實現(xiàn)我們的UI了,UI比較簡單,

2個TextBlock 控件(戶名,密碼顯示),

1個TextBox 用來提供輸入用戶名,然后1個密碼框:PasswordBox,用來接收用戶輸入的密碼,設(shè)置屬性passwordChar接收密碼隱藏為:*

1個CheckBox 用來提供用戶選擇是否記住密碼,注冊Checked事件

1個Button控件,用來進行登陸提交,注冊Click事件

當(dāng)然我們可以提供一個進度條,ProgressBar ,可以注冊ValueChanged事件,就是值改變事件,用來顯示進度,這里我們暫時不用 。

然后拖動控件進行簡單布局,如下:

http://images.51cto.com/files/uploadimg/20130410/1056250.jpg

四:現(xiàn)在就進入.cs文件中處理事件,接收戶名,密碼,然后調(diào)用登陸。當(dāng)然如果用戶勾選了“記住密碼”,就需要保存戶名,密碼到本 機,下次打開軟件時顯示出來,那么怎么保存呢?這里我們用IsolatedStorageSettings(獨立存貯,類似于鍵值對形式保存數(shù)據(jù))

具體代碼如下:

  1. //我們把用戶對象保存進去 
  2.                        IsolatedStorageSettings.ApplicationSettings["UserInfo"] = usetInfo; 
  3.                        IsolatedStorageSettings.ApplicationSettings.Save(); 

當(dāng)然開始加載頁面時候也應(yīng)該取出保存的UserInfo,并把戶號,密碼等設(shè)置在文本框中:

  1. //判斷是否有鍵 
  2. if(IsolatedStorageSettings.ApplicationSettings.Contains("UserInfo")) 
  3.     UsetInfo usetInfo = IsolatedStorageSettings.ApplicationSettings["UserInfo"as UsetInfo; 
  4.     //顯示在文本框中 
  5.     txtUserName.Text = usetInfo.userName; 
  6.     txtPassword.Password= usetInfo.passworld; 

五:很多時候我們登陸用戶的一些信息需要保存起來提供給全局使用,那么必定要涉及保存全局的變量,上一篇文章中,我們知道App.xaml.cs里面可以保存全局性的東西,那么我們就把用戶信息保存在App.xaml.cs里面吧,以便下次使用。

  1. //保存登陸用戶(全局),App.xaml.cs 
  2.         private UsetInfo usetInfo; 
  3.         public UsetInfo GetUsetInfo()  
  4.         { 
  5.           return usetInfo; 
  6.         } 
  7.  
  8.         public void SetUsetInfo(UsetInfo usetInfo)  
  9.         { 
  10.             this.usetInfo = usetInfo; 
  11.         } 

在Main.xmal.cs中保存到全局中:

  1. //保存用戶到全局變量中 
  2. App app= Application.Current as App; 
  3. if(app!=null
  4.     app.SetUsetInfo(usetInfo); 
  5.  
  6.     if (app.GetUsetInfo()!=null
  7.     MessageBox.Show("您已經(jīng)登陸成功!,您已經(jīng)保存對象到全局"); 

http://images.51cto.com/files/uploadimg/20130410/1056251.jpg

具體的還是看代碼吧,如下:

  1. public partial class App : Application 
  2.     { 
  3.         /// <summary> 
  4.         /// Provides easy access to the root frame of the Phone Application. 
  5.         /// </summary> 
  6.         /// <returns>The root frame of the Phone Application.</returns> 
  7.         public PhoneApplicationFrame RootFrame { getprivate set; } 
  8.  
  9.         //保存登陸用戶(全局) 
  10.         private UsetInfo usetInfo; 
  11.         public UsetInfo GetUsetInfo()  
  12.         { 
  13.           return usetInfo; 
  14.         } 
  15.  
  16.         public void SetUsetInfo(UsetInfo usetInfo)  
  17.         { 
  18.             this.usetInfo = usetInfo; 
  19.         } 
  20.  
  21.   bool? isChecked = false
  22.         // Constructor 
  23.         public MainPage() 
  24.         { 
  25.             InitializeComponent(); 
  26.             //注冊事件 
  27.             initEventListener(); 
  28.         } 
  29.  
  30.         private void initEventListener()  
  31.         { 
  32.             this.Loaded += new RoutedEventHandler(MainPage_Loaded); 
  33.             btnLogin.Click += new RoutedEventHandler(btnLogin_Click); 
  34.             chkRecord.Checked += new RoutedEventHandler(chkRecord_Checked); 
  35.             progressBar.ValueChanged += new RoutedPropertyChangedEventHandler<double>(progressBar_ValueChanged); 
  36.         } 
  37.  
  38.         //本頁加載時候根據(jù)獨立存貯保存的內(nèi)容,顯示在文本框里 
  39.         void MainPage_Loaded(object sender, RoutedEventArgs e) 
  40.         { 
  41.             //判斷是否有鍵 
  42.             if(IsolatedStorageSettings.ApplicationSettings.Contains("UserInfo")) 
  43.             { 
  44.                 UsetInfo usetInfo = IsolatedStorageSettings.ApplicationSettings["UserInfo"as UsetInfo; 
  45.                 //顯示在文本框中 
  46.                 txtUserName.Text = usetInfo.userName; 
  47.                 txtPassword.Password= usetInfo.passworld; 
  48.             } 
  49.               
  50.         } 
  51.  
  52.         void progressBar_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) 
  53.         { 
  54.              
  55.         } 
  56.  
  57.         void chkRecord_Checked(object sender, RoutedEventArgs e) 
  58.         { 
  59.             if (sender!=null
  60.             { 
  61.                 CheckBox chkRecord = sender as CheckBox; 
  62.                 isChecked=chkRecord.IsChecked; 
  63.                 if (isChecked==true
  64.                 { 
  65.                     //判斷是否被選中,然后保存到文件中或是獨立存貯中,在下次啟動時候就讀取文件或獨立存貯的內(nèi)容 
  66.                     isChecked = true
  67.                 } 
  68.             } 
  69.         } 
  70.  
  71.         void btnLogin_Click(object sender, RoutedEventArgs e) 
  72.         { 
  73.             string userName = txtUserName.Text.Trim(); 
  74.             string password = txtPassword.Password.Trim(); 
  75.  
  76.             //調(diào)用服務(wù)器端進行數(shù)據(jù)驗證登陸 
  77.              UsetInfo usetInfo= PhoneAppService.getInstance().getUserInfoService().Login(userName, password); 
  78.              if (usetInfo!=null
  79.             { 
  80.                 //保存用戶到全局變量中 
  81.                 App app= Application.Current as App; 
  82.                 if(app!=null
  83.                 { 
  84.                     app.SetUsetInfo(usetInfo); 
  85.  
  86.                     if (app.GetUsetInfo()!=null
  87.                         MessageBox.Show("您已經(jīng)登陸成功!,您已經(jīng)保存對象到全局"); 
  88.                        
  89.                     //根據(jù)單選框選中情況保存數(shù)據(jù)到獨立存貯中 
  90.                     if(isChecked==true
  91.                     { 
  92.                         //我們把用戶對象保存進去 
  93. IsolatedStorageSettings.ApplicationSettings["UserInfo"] = usetInfo;                 IsolatedStorageSettings.ApplicationSettings.Save(); 
  94.                     } 
  95.                 } 
  96.             } 
  97.         } 

 

責(zé)任編輯:閆佳明 來源: oschina
相關(guān)推薦

2013-04-10 10:40:41

2009-07-16 15:14:27

WebWork用戶登陸

2010-05-28 15:08:09

MySQL遠程登陸

2009-07-24 15:46:00

ASP.NET登陸控件

2009-06-16 09:38:39

Linux

2009-06-17 12:59:32

Linux

2014-09-29 09:31:35

Angular

2023-12-05 07:26:21

Golang項目結(jié)構(gòu)

2011-07-20 09:27:37

Scala

2009-12-22 13:50:00

2009-11-10 17:31:38

VB.NET注冊表

2010-04-21 17:20:03

Unix遠程

2011-03-08 13:52:25

Proftpd

2010-06-07 10:44:01

MySQL遠程登陸

2018-02-24 14:00:42

TensorFlow數(shù)學(xué)計算機器學(xué)習(xí)

2011-02-25 17:07:25

2012-11-07 10:09:11

組件技術(shù)OAuth授權(quán)登陸

2012-02-14 10:46:15

WP Marketpl雜志月刊

2010-08-18 08:21:49

Adobe AIRAndroid

2009-12-15 17:28:58

戴爾互聯(lián)課堂
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲国产一区二区三区 | 欧美精品一区二区三区四区五区 | 97视频在线观看免费 | 激情欧美一区二区三区 | 天天色官网 | 精品亚洲一区二区 | 日韩福利 | 欧美日韩中文字幕在线 | 97国产精品| 日韩成人在线播放 | 国产精品视频一二三区 | 久久精品青青大伊人av | 精品乱码一区二区 | 综合五月婷 | m豆传媒在线链接观看 | 国产偷录视频叫床高潮对白 | 99精品热视频 | 99久久精品国产麻豆演员表 | 久久成人午夜 | 精品视频一区二区三区 | 日本又色又爽又黄又高潮 | 狼色网 | 亚洲欧美综合精品另类天天更新 | 亚洲精品第一 | a久久| 精品欧美一区免费观看α√ | av日日操 | 国产免费色 | 欧美一区二区三区免费在线观看 | 亚洲精品大片 | 精品乱码久久久久 | 成人亚洲精品 | 欧美极品在线播放 | 亚洲欧洲精品成人久久奇米网 | 亚洲国产精品一区二区久久 | 91五月天 | 国产一区高清 | 超碰伊人| 午夜久久久久久久久久一区二区 | 在线看日韩av | 成人av鲁丝片一区二区小说 |