偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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的,但是這未免太對不起觀眾了,于是就改成做個登 陸的例子,當然這個登陸例子我們暫時不連接遠程服務,就在文件中寫死吧,以后講到遠程服務的時候必然會使用到的,這個登陸例子也可以作為后續(xù)開發(fā)使用。

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

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

        public String userName;
        public String passworld;

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

      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.         } 

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

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

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

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

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

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

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

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

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

具體代碼如下:

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

當然開始加載頁面時候也應該取出保存的UserInfo,并把戶號,密碼等設置在文本框中:

  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)用服務器端進行數(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.         } 

 

責任編輯:閆佳明 來源: 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-06-07 10:44:01

MySQL遠程登陸

2011-03-08 13:52:25

Proftpd

2010-04-21 17:20:03

Unix遠程

2018-02-24 14:00:42

TensorFlow數(shù)學計算機器學習

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ù)棧公眾號