Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在Xamarin表单中设置元素的资源名称_Android_Xamarin_Xamarin.forms_Xamarin.android - Fatal编程技术网

Android 在Xamarin表单中设置元素的资源名称

Android 在Xamarin表单中设置元素的资源名称,android,xamarin,xamarin.forms,xamarin.android,Android,Xamarin,Xamarin.forms,Xamarin.android,我希望能够引用将Xamarin表单应用程序编译到Android中后创建的元素 示例代码: 从我所看到的元素生成方式如下: android:id​/content​/RelativeLayout[0]​/PlatformRenderer[0]​/NavigationPageRenderer[0]​/PageContainer[0]​/PageRenderer[0]​/Platform_DefaultRenderer[0]​/Platform_DefaultRenderer[1]​/Entry

我希望能够引用将Xamarin表单应用程序编译到Android中后创建的元素


示例代码


从我所看到的元素生成方式如下:

android:id​/content​/RelativeLayout[0]​/PlatformRenderer[0]​/NavigationPageRenderer[0]​/PageContainer[0]​/PageRenderer[0]​/Platform_DefaultRenderer[0]​/Platform_DefaultRenderer[1]​/EntryRenderer[0]​/FormsEditText[0]
android:id​/content​/RelativeLayout[0]​/PlatformRenderer[0]​/NavigationPageRenderer[0]​/PageContainer[0]​/PageRenderer[0]​/Platform_DefaultRenderer[0]​/Platform_DefaultRenderer[1]​/EntryRenderer[1]​/FormsEditText[0]
android:id​/content​/RelativeLayout[0]​/PlatformRenderer[0]​/NavigationPageRenderer[0]​/PageContainer[0]​/PageRenderer[0]​/Platform_DefaultRenderer[0]​/Platform_DefaultRenderer[1]​/ButtonRenderer[2]​/AppCompatButton[0]
这是不可用的,我只希望能够将资源命名为:

UsernameEntry
PasswordEntry
LoginButton
然后引用它们


用例:

  • 火基测试:

  • 游戏商店发布前报告:


我觉得这应该很容易做到,但我花了一天的大部分时间去寻找,没有发现任何帮助是值得感激的。

这些Android小部件/控件是动态创建的(在本例中通过表单的XAML),而不是从正在膨胀的AXML布局中创建的,因此没有需要解析的布局,也没有分配的资源名称(未分配R.*常数)

启动前登录凭据需要资源名称而不是ID。仅供参考:可以在运行时分配小部件ID(即,通过该控件的自定义表单呈现程序),但在这种情况下,这没有帮助,因为您需要基于字符串的资源名称

如果您的表单应用程序需要演示/测试凭据,并且您知道如何使用Play Store预报告,则您必须继续使用自动测试爬虫,并提供一个自定义的机器人脚本来运行测试

注意:


您可以在Xamarin.Android项目中使用一些虚构的资源名称创建一个虚拟布局,因此在构建时,这些名称在自动生成的C#resource.Id和Java R.Id文件中被分配int-Id,然后在运行时(在本机代码中,通过DI/IoC/Forms的Renderer/…)获取基于表单登录页面的Android小部件,并使用从虚拟布局的资源字符串名称创建的ID分配这些用户名/密码小部件的ID属性。

我真的希望不是这样:(@JesseWhitham我相信有几种解决方案可以为Xamarin Forms()中的发布前报告设置资源名称: