Xamarin.Forms 显示列表中的数据在调试模式下有效但在发布模式下无效
Xamarin.Forms display a data in list works in debug but not in release mode
我有一个代码可以将 xamarin 形式的数据显示为列表。它在调试模式下显示良好,但在发布或 APK 时不显示任何列表。它释放模式显示列表中的显示按钮,它只是一个静态的。
以下是我在表单中完成的代码。任何人都可以指导我解决这个问题。
<StackLayout>
<ListView Grid.Row="1" x:Name="listLogin" ItemsSource="{Binding callLogList}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<Grid x:Name="Item">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="1" x:Name="ImgCallType" Source="{Binding ImageUrl}" Style="{Binding width:50px,height:50px;}"></Image>
<Label Grid.Column="2" FontSize="Subtitle" Text="{Binding Mobilenumber}"></Label>
<Label Grid.Column="3" FontSize="Subtitle" Text="12345"></Label>
<Button Grid.Column="4" Text="Add" TextColor="Black" HorizontalOptions="EndAndExpand" Clicked="" CommandParameter="{Binding Mobilenumber}"/>
</Grid>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
public partial class MiscallData : ContentPage
{
public MiscallData()
{
InitializeComponent();
GetCallLogs();
}
public void GetCallLogs()
{
Android.Content.Context myContext = Android.App.Application.Context;
string OutgoingqueryFilter = string.Format("{0}={1}", CallLog.Calls.Type, (int)CallType.Outgoing);
string querySorter = string.Format("{0} desc ", CallLog.Calls.Date);
ICursor OutgoingqueryData = myContext.ContentResolver.Query(CallLog.Calls.ContentUri, null, null, null, querySorter);
List<MisscallDataModel> callLogList = new List<MisscallDataModel>();
while (OutgoingqueryData.MoveToNext())
{
MisscallDataModel model = new MisscallDataModel();
//---phone number---
model.Mobilenumber = OutgoingqueryData.GetString(OutgoingqueryData.GetColumnIndex(CallLog.Calls.Number));
//---date of call---
int secondindex = OutgoingqueryData.GetColumnIndex(CallLog.Calls.Date);
long seconds = OutgoingqueryData.GetLong(secondindex);
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yy HH:mm");
String dateString = formatter.Format(new Date(seconds));
model.Date = dateString;
model.ImageUrl = "BlockCall.png";
callLogList.Add(model);
}
listLogin.ItemsSource = callLogList;
}
}
public class MisscallDataModel
{
public long UserId { get; set; }
public string Mobilenumber { get; set; }
public string Date { get; set; }
public string callType { get; set; }
public string ImageUrl { get; set; }
}
我自己解决了我的问题,代码没有错,只是在属性设置中设置,
只需转到 android 属性 然后 select android 选项,只需找到链接器 属性 有链接, select 选项 None , 而已。
Android 项目 => 属性 => Android 选项 => 链接器属性 => 链接 => None。
我有一个代码可以将 xamarin 形式的数据显示为列表。它在调试模式下显示良好,但在发布或 APK 时不显示任何列表。它释放模式显示列表中的显示按钮,它只是一个静态的。 以下是我在表单中完成的代码。任何人都可以指导我解决这个问题。
<StackLayout>
<ListView Grid.Row="1" x:Name="listLogin" ItemsSource="{Binding callLogList}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<Grid x:Name="Item">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="1" x:Name="ImgCallType" Source="{Binding ImageUrl}" Style="{Binding width:50px,height:50px;}"></Image>
<Label Grid.Column="2" FontSize="Subtitle" Text="{Binding Mobilenumber}"></Label>
<Label Grid.Column="3" FontSize="Subtitle" Text="12345"></Label>
<Button Grid.Column="4" Text="Add" TextColor="Black" HorizontalOptions="EndAndExpand" Clicked="" CommandParameter="{Binding Mobilenumber}"/>
</Grid>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
public partial class MiscallData : ContentPage
{
public MiscallData()
{
InitializeComponent();
GetCallLogs();
}
public void GetCallLogs()
{
Android.Content.Context myContext = Android.App.Application.Context;
string OutgoingqueryFilter = string.Format("{0}={1}", CallLog.Calls.Type, (int)CallType.Outgoing);
string querySorter = string.Format("{0} desc ", CallLog.Calls.Date);
ICursor OutgoingqueryData = myContext.ContentResolver.Query(CallLog.Calls.ContentUri, null, null, null, querySorter);
List<MisscallDataModel> callLogList = new List<MisscallDataModel>();
while (OutgoingqueryData.MoveToNext())
{
MisscallDataModel model = new MisscallDataModel();
//---phone number---
model.Mobilenumber = OutgoingqueryData.GetString(OutgoingqueryData.GetColumnIndex(CallLog.Calls.Number));
//---date of call---
int secondindex = OutgoingqueryData.GetColumnIndex(CallLog.Calls.Date);
long seconds = OutgoingqueryData.GetLong(secondindex);
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yy HH:mm");
String dateString = formatter.Format(new Date(seconds));
model.Date = dateString;
model.ImageUrl = "BlockCall.png";
callLogList.Add(model);
}
listLogin.ItemsSource = callLogList;
}
}
public class MisscallDataModel
{
public long UserId { get; set; }
public string Mobilenumber { get; set; }
public string Date { get; set; }
public string callType { get; set; }
public string ImageUrl { get; set; }
}
我自己解决了我的问题,代码没有错,只是在属性设置中设置, 只需转到 android 属性 然后 select android 选项,只需找到链接器 属性 有链接, select 选项 None , 而已。
Android 项目 => 属性 => Android 选项 => 链接器属性 => 链接 => None。