我正在研究 Xamarin.Forms。
当我创建空白 Xamarin.Forms 项目时,在一个解决方案中创建了四个项目,一个用于 iOS,一个用于 Android,一个用于 Windows,一个是便携式项目(通用项目)。
我使用以下代码添加了一个名为“Page2.XAML”的 XAML 表单:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Rutul_App.Page2"
Title="aaaa">
<ContentPage.Content>
<StackLayout>
<Label Text="ABC" HorizontalOptions="Center"/>
</StackLayout>
</ContentPage.Content>
</ContentPage>
Run Code Online (Sandbox Code Playgroud)
并在文件背后的代码中:
namespace Rutul_App
{
public partial class Page2 : ContentPage
{
public Page2()
{
InitializeComponent();
}
}
}
Run Code Online (Sandbox Code Playgroud)
在 App.cs 页面中,我添加了:
public App()
{
// The root page of your application
MainPage = new NavigationPage(new Page2());
}
Run Code Online (Sandbox Code Playgroud)
问题 :
我的问题是标题和 BackGroundImage 不显示。有很多属性不起作用。
我的页面是继承表单 ContentPage 但我无法访问 ContentPage 类的属性。属性是公开的。
为什么我的标题不显示?
我有两个选择器。第二个选择器取决于第一个选择器。两个选择器都从Service绑定。我正在使用字典对象将数据绑定到选择器。我没有使用MVVM模式。
System.ArgumentOutOfRangeException:索引超出范围。必须为非负数并且小于集合的大小。
参数名称:索引
全球宣言:
Dictionary<string, string> DicObjActivityType;
Dictionary<string, string> DicObjSelfActivity;
Run Code Online (Sandbox Code Playgroud)
第一选择器selectedIndexChange事件
private async void PckrActivityType_SelectedIndexChanged(object sender, EventArgs e)
{
if (sender as Picker == null)
return;
else
{
var objActivityType = sender as Picker;
var Key = DicObjActivityType.FirstOrDefault(x => x.Value == objActivityType.Items[objActivityType.SelectedIndex]).Key;
PickedActivityType = Key;
if (Key != "0")
{
PckrSelfActivity.IsEnabled = true;
await CallGetWebService_SelfActivity(Key);
if (PckrSelfActivity.IsEnabled == true)
{
PckrSelfActivity.Items.Clear();
foreach (string items in DicObjSelfActivity.Values)
{
PckrSelfActivity.Items.Add(items);
}
} …Run Code Online (Sandbox Code Playgroud) 我正在研究xamarin.forms.(仅在android中遇到以下问题)
当我的应用程序启动时,它会检查我的GPS位置是打开还是关闭.
要打开或关闭GPS位置我正在使用依赖服务.
public static bool CheckGPSConnection()
{
var gpsConnection = DependencyService.Get<IGPSConnectivity>();
return gpsConnection.CheckGPSConnection();
}
Run Code Online (Sandbox Code Playgroud)
当我来到我的应用程序的主页时,我把下面的代码
if (Device.OS == TargetPlatform.Android)
{
if (!App.CheckGPSConnection())
{
bool answer = await DisplayAlert("Alert", "Would you like to start GPS?", "Yes", "No");
if (answer)
{
Android.App.Application.Context.StartActivity(new Android.Content.Intent(Android.Provider.Settings.ActionLocationSourceSettings));
}
}
}
Run Code Online (Sandbox Code Playgroud)
但它给了我一个例外
{Android.Util.AndroidRuntimeException:从Activity上下文外部调用startActivity()需要FLAG_ACTIVITY_NEW_TASK标志.这真的是你想要的吗?在/ Users/...中的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()[0x0000c]
我该怎么办?
我在解析日期时面临一个问题.我做了以下常用功能.
public static string ConvertedDate(string date)
{
if(!string.IsNullOrEmpty(date))
{
DateTime returnValue;
bool flag = DateTime.TryParseExact(date, "yyyy-MM-dd hh:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out returnValue);
return flag ? returnValue.ToString("MM.dd.yyyy") : null;
}
else
{
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
但是很奇怪的事情发生了一些字符串被成功转换为DateTime但有些字符串返回false.
例如 :
"2017-05-11 12:00:24"这个字符串解析成功.
"2015-03-06 20:18:42"这个字符串不行.
字符串的格式相同.
我观察到,当"小时(hh)"超过12时,则无法解析.