我使用此代码在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);
}