2016-07-12 11 views
5

Xin chào tất cả mọi người Good Day làm cách nào để chuyển giá trị chuỗi hoặc dữ liệu từ Android MainActivity tới PCL TabbedPage?chuyển dữ liệu chuỗi từ Android MainActivity sang PCL TabbedPage xamarin.form

MainActivity.cs

using System; 
using Android.App; 
using Android.Content; 
using Android.Content.PM; 
using Android.Runtime; 
using Android.OS; 
using Android.Telephony; 
using Xamarin.Forms; 

    namespace NegDrClient.Droid 
    { 
    [Activity (Label = "Neg Client", Icon = "@drawable/logo", MainLauncher = true, ScreenOrientation = ScreenOrientation.Portrait)] 
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity 
    { 

     protected override void OnCreate (Bundle bundle) 
     { 
      base.OnCreate (bundle); 
      global::Xamarin.Forms.Forms.Init (this, bundle); 
      global::ZXing.Net.Mobile.Forms.Android.Platform.Init(); 
      LoadApplication (new App()); 
     } 

     public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults) 
     { 
      global::ZXing.Net.Mobile.Forms.Android.PermissionsHandler.OnRequestPermissionsResult (requestCode, permissions, grantResults);   
     } 

     public string GetNumber() 
     { 
      TelephonyManager telephonyManager = 
      (TelephonyManager) Forms.Context.GetSystemService(Android.Content.Context.TelecomService); 
      var number = telephonyManager.Line1Number; 
      return number.ToString(); 
     } 
    } 
    } 

tôi cần phải gọi phương thức GetNumber() để tôi có thể gán nó vào mục đăng nhập của tôi, Cảm ơn bạn.

Trả lời

4

Bạn có thể thực hiện việc này thông qua Dịch vụ phụ thuộc.

Thêm giao diện sau đây để dự án Xamarin.Forms của bạn:

public interface IPhone 
{ 
    string GetNumber(); 
} 

Thêm giao diện mà đến hiện tại của bạn MainActivity trong dự án Xamarin.Android của bạn:

public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity, IPhone 

ký mà phụ thuộc lớp (trên namespace NegDrClient.Droid của bạn) :

[assembly: Xamarin.Forms.Dependency(typeof(MainActivity))] 

Bây giờ bạn có thể gọi nó trong dự án Xamarin.Forms của bạn:

var GetNumberButton = new Button() 
{ 
    Command = new Command(() => { 
     Device.BeginInvokeOnMainThread(() => 
     { 
      var number = DependencyService.Get<IPhone>().GetNumber(); 
      System.Diagnostics.Debug.WriteLine(number); 
     }); 
    }) 
}; 

Lưu ý: phương pháp GetNumber của bạn có một lỗi trong nó, nên là:

public string GetNumber() 
{ 
    var telephonyManager = (TelephonyManager)Forms.Context.GetSystemService(Context.TelephonyService); 
    return telephonyManager.Line1Number; 
} 
Các vấn đề liên quan