【问题标题】:passing string data from Android MainActivity to PCL TabbedPage xamarin.form将字符串数据从 Android MainActivity 传递到 PCL TabbedPage xamarin.form
【发布时间】:2016-12-07 23:57:35
【问题描述】:

大家好,大家好,我如何将字符串值或数据从 Android MainActivity 传递到 PCL TabbedPage?

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(); 
       }
     }
   }

我需要调用 GetNumber() 方法,以便将其分配给我的登录条目,谢谢。

【问题讨论】:

    标签: xamarin xamarin.forms xamarin-studio


    【解决方案1】:

    您可以通过依赖服务来做到这一点。

    将以下接口添加到您的 Xamarin.Forms 项目:

    public interface IPhone
    {
        string GetNumber();
    }
    

    将该接口添加到您现有的MainActivity Xamarin.Android 项目中:

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

    注册那个依赖类(在你的namespace NegDrClient.Droid之上):

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

    现在您可以在您的 Xamarin.Forms 项目中调用它:

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

    注意:你的GetNumber方法有错误,应该是:

    public string GetNumber()
    {
        var telephonyManager = (TelephonyManager)Forms.Context.GetSystemService(Context.TelephonyService);
        return telephonyManager.Line1Number;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-29
      相关资源
      最近更新 更多