如何串起电话号码来调用功能Xamarin



我使用此代码在Xamarin中调用。

enter code here var phoneDialer = CrossMessaging.Current.PhoneDialer;
        if (phoneDialer.CanMakePhoneCall)
            phoneDialer.MakePhoneCall("?");

我有联系人的列表。我想要那个,如果我单击På电话号码,那么它直接致电我想要的人。如果我写一些数字?位置,功能有效,但是所有联系人的电话号码都是相同的。我需要写什么?放置在那个查找和更改号码,如果我单击另一个人?

这是我的kontaktlist:

   public partial class Kontaktliste : ContentPage
{
    KontaktlisteView vm;
    public int Tlfnr { get; private set; }
    public Kontaktliste()
    {
        InitializeComponent();
        vm = new KontaktlisteView();
        NameslistView.ItemsSource = vm.Kontakter;
        //Order the contacts
        var sorted = vm.Kontakter.OrderBy(x => x.Fødselsdage)
                              .ToList();
        //Set the ItemsSource with the ordered contacts
        NameslistView.ItemsSource = sorted;
    }
    private async void Kontakter_ItemTapped(object sender, ItemTappedEventArgs e)
    {
        ((ListView)sender).SelectedItem = null;
        var Kontakter = e.Item as Kontakter;
        await DisplayAlert("Kontakt", "nName: " + Kontakter.Fuldenavn + "nTelefon: " + Kontakter.Tlfnr + "nEmail: " + Kontakter.Email + "nAdresse: " + Kontakter.Adresse + "nFødselsdage: " + Kontakter.Fødselsdage, "Luk");
    }
    //Search button
    private void MainSearchBar_SearchButtonPressed(object sender, EventArgs e)
    {
        var keyword = MainSearchBar.Text;
        NameslistView.ItemsSource = vm.Kontakter.Where(obj => (obj.Fuldenavn.Contains(keyword) || obj.Tlfnr.ToString().Contains(keyword)));
    }
    private void MainSearchBar_TextChanged(object sender, TextChangedEventArgs e)
    {
        if (e.NewTextValue == string.Empty)
        {
            NameslistView.ItemsSource = vm.Kontakter.Where(name => (name.Fuldenavn.Contains("")));
        }
    }
    //Ring når klikke på telefon nummer


    public void OnTelefonTapped(object sender, EventArgs e)
    {
        var phoneDialer = CrossMessaging.Current.PhoneDialer;
        if (phoneDialer.CanMakePhoneCall)
            phoneDialer.MakePhoneCall("");
    }

和联系人

 public class Kontakter
{
    public static List<Kontakter> ItemsSource { get; internal set; }
    public string Fuldenavn { get; set; }
    public int Tlfnr { get; set; }
    public string Email { get; set; }
    public string Adresse { get; set; }
    public string Billed { get; set; }
    public DateTime Fødselsdage { get; set; }
    public List<Kontakter> GetKontakter()
    {
        List<Kontakter> kontakter = new List<Kontakter>()
        {
            new Kontakter ()
            {
                Fuldenavn = Name,
                Tlfnr =1234567
                Email = mail@mail.com
                Adresse = 
                Billed = 
                Fødselsdage=new DateTime()
            },

<ScrollView>
    <StackLayout>
        <SearchBar x:Name="MainSearchBar" Placeholder="Søg" SearchButtonPressed="MainSearchBar_SearchButtonPressed"  TextChanged="MainSearchBar_TextChanged"/>
        <ListView x:Name="NameslistView" HasUnevenRows="True" ItemTapped="Kontakter_ItemTapped" 
            ItemsSource="{Binding Kontakter}" >
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout Orientation="Vertical" >
                            <Grid HeightRequest="5" BackgroundColor="White"  />
                            <StackLayout Orientation="Horizontal" BackgroundColor="LightSkyBlue" >
                                <Image Source="{Binding Billed}" />
                                <StackLayout Orientation="Vertical">
                                    <Label Text="{Binding Fuldenavn}" TextColor="Black" FontSize="Large" />
                                    <StackLayout>
                                        <Label Text="{Binding Tlfnr}" TextColor="Black" FontSize="Medium"/>
                                        <Label.GestureRecognizers>
                                            <TapGestureRecognizer
                                                 Tapped="OnTelefonTapped">
                                            </TapGestureRecognizer>
                                        </Label.GestureRecognizers>
                                    </StackLayout>
                                    <StackLayout>
                                        <Label Text="{Binding Email}" TextColor="Black" FontSize="15"></Label>
                                        <Label.GestureRecognizers>
                                            <TapGestureRecognizer
                                                 Tapped="OnEmailTapped">
                                            </TapGestureRecognizer>
                                        </Label.GestureRecognizers>
                                    </StackLayout>
                                </StackLayout>
                            </StackLayout>
                        </StackLayout >
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </StackLayout >
</ScrollView>

由于您的tapgesturerecognizer已连接到标签上,因此您应该能够执行此操作

public void OnTelefonTapped(object sender, EventArgs e)
{
    var source = (Label)sender;
    var phone = source.Text;
    var phoneDialer = CrossMessaging.Current.PhoneDialer;
    if (phoneDialer.CanMakePhoneCall)
        phoneDialer.MakePhoneCall(phone);
}

最新更新