Tag: xamarin.android

图像被分配给ListView的另一个行项目

我知道async await非常方便在设置适配器之前为ListView / GridView准备数据。 例如: // in Activity.cs async void OnCreate(Bundle SavedInstanceState) { SetContentView(…); ListView listView = FindViewById(…); AdapterData data = await Task.Run(() => GetDataFromWorkerThread); listView.SetAdapter(data); } 但我需要的是: // in ListViewAdapter.cs public override View GetView (int position, View convertView, ViewGroup parent) { if(convertView == null) { // create new view } ImageView imgView = convertView.FindViewById(Resouce.Id.img_view_id); […]

如何将不可见的ViewModel添加到MvvmCross中的导航堆栈

我有以下应用情况。 在启动时,我想转到“List”ViewModel作为启动视图模型/视图。 但我希望用户能够选择BACK来转到“菜单”ViewModel。 如何在MvvmCross中完成?

具有视图或存储过程的Azure移动应用程序中的脱机数据同步

我们已经创建了一个Xamarin Forms应用程序,目前只在Android上运行。 后端是.Net Azure移动应用程序服务 我从文章中了解到,离线数据同步仅适用于“/ tables”端点。 (至少那是我所理解的) 但是我的API公开了来自连接查询(实体关系)的数据,还有一些来自存储过程。 这是否意味着这些不适用于当前的SDK? 我有什么选择? 我是否公开表并处理客户端中的连接的业务逻辑?

如果在xamarin表格中选择它,如何清除选择器?

我有两个选择器。 第二个选择器取决于第一个选择器。 两个选择器都是从Service绑定的。 我正在使用字典对象将数据绑定到选择器。 我没有使用MVVM模式。 第一个服务调用,其中绑定第一个选择器的字典对象。 然后从该字典对象中填充第一个选择器。 那时候第二个选择器是空的。 在第一个选择器调用服务的selectedIndexChange事件中绑定第二个选择器的字典对象。 现在从字典对象中将值填充到第二个选择器。 (如果已经选择器有数据然后放Picker.Items.clear() ) 现在如果我从第二个选择器中选择一些值并更改第一个选择器的值,那么它会在Picker.Items.clear()中给出错误 System.ArgumentOutOfRangeException:索引超出范围。 必须是非负数且小于集合的大小。 参数名称:index 全球宣言: Dictionary DicObjActivityType; Dictionary DicObjSelfActivity; First Picker 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; […]

Xamarin.Android绑定到具有依赖项的第三方SDK

我正在使用VS2015 Update3与当前/最新的Xamarin,我正在尝试创建一个绑定库来包装用Java编写的第三方SDK。 我有一个C#/ .Net背景,到目前为止几乎没有Java经验。 此SDK依赖于3个其他项目,可以作为AAR或通过NuGet获得。 我能够为父AAR创建一个绑定库,使用一些MetaData.xml tweato调整参数类型并返回类型并更正类访问器以满足其抽象基类,所有这些都最初阻止了生成的C#.Net Android来自建筑物的绑定库。 现在父绑定程序集构建,但无法执行,因为它需要其他3个AAR依赖项。 需要的依赖关系(“#”是下面post中提到的每个的别名): “2” – > com.android.support:support-v4:25.1.1 “3” – > com.google.android.gms:play-services-location:10.2.0 “4” – > com.google.android.gms:play-services-gcm:10.2.0 在这种情况下,如果我需要创建一个绑定dll来包装依赖于3个其他AAR的父AAR: 我应该(A)创建4个绑定程序集 – 父绑定程序集Bind_AAR_1.dll,它依赖于Bind_AAR_2.dll,Bind_AAR_3.dll和Bind_AAR_4.dll? 或者,我是否应该(2)深入研究2个,3个和4个AAR文件并从每个文件中获取JAR文件,并使用“EmbeddedJar”(或其他属性/设置)将它们直接包含在Jars文件夹中的Bind_AAR_1.dll中? 或者,看到2,3和4实际上是通过NuGet提供的,我应该使用NuGet将它们引用到Bind_AAR_1项目吗? 如果我使用NuGet引用/包含它们,那么AAR 1中的Javacode是否能够看到AAR 2,3和4中的代码? 我已经尝试了各种方法(A),(B)和(C)的变化,但没有运气,或导致更多工作的结果,这让我想知道什么是最好/正确的方法。 在相关主题上,最佳做法是使用Metadata.xml文件从生成的生成的包装器API中显式删除您未直接计划在Xamarin项目中使用的所有内容(类等)吗? 似乎限制接口可能是好的,并且可能还减少绑定dll的构建大小(以及可能的构建时间)。 任何帮助,将不胜感激! 柯蒂斯 ================================================== ===================== 4/11/2017 – 更新 非常高兴收到@_JonDouglas之类的投入! 但是……仍然无法使这个SDK工作。 我已经尝试了这些方法A,B和C中的每一个,并且已经能够构建我的绑定项目(通过转换/ MetaData.xml完成​​操作)。 第三方SDK被设计/记录为Java解决方案中的组件的一部分。 根据供应商的说明文档,此解决方案将在其.gradle文件中添加3个依赖项,从而在整个Java解决方案中提供对这些项的引用。 我没有Java历史,所以在这里展开它。 实际上,当我将SDK(单独使用或使用3种方法中的任何一种)与Visual Studio包装到Xamarin Android绑定程序集中时,在运行时SDK会遇到ClassNotFoundexception(由“未找到Google Play”certificate)日志)。 从所需的Java依赖项中使用的类是以后期绑定的方式使用类名的名称字符串创建的,如下所示: try { […]

Android App太大,Linking禁用function

我已经完成了我的应用程序,现在我正在尝试构建.apk并在我的手机上进行测试(无需调试,在发布模式下)。 将链接设置为“ 无 ”一切正常。 这里的问题是,应用程序太大了 – 它的20MB ,那就是垃圾。 我读过关于链接的文章: 点击这里 所以我尝试了“ 仅限Sdk Assemblies ”和“ Sdk和用户assembly ”。 第二个选项(两个程序集)直接失败,我甚至无法看到我的应用程序的第一个屏幕(登录)。 将链接设置为“ 仅限Sdk Assemblies ”后,我可以进入第一个屏幕(Loginscreen)。 该应用程序也是6.73MB什么更好,更有资格。 我现在面临的问题是,当我点击第一个屏幕上的“登录”按钮时, 没有任何反应 (通常会将我重定向到下一个活动)。 Button被绑定到命令: public IMvxCommand LoginCommand { get { return new MvxRelayCommand(DoLogin); } } private void DoLogin() { //Do Stuff } 在DoLogin()中放置一个断点 – 表明它永远不会进入。 那么,我怎么能解决这个问题呢? 似乎mvvmcross的function因任何原因被禁用? 我的主要目标是减少应用程序的大小。 这里重要的是.csproj中必要的部分 pdbonly true bin\Release\ TRACE […]

可移植类库配置文件78缺少与属性相关的方法/属性

在我的PCL核心项目(WP8,Android,iOS,Xamarin,MvvmCross)中,我使用自定义属性。 Type.GetCustomAttributes()扩展方法让我检查使用的属性。 使用PCL Profile104这很有效。 但是因为我想使用async / await,我需要使用PCL Profile78(和.NET 4.5) 问题:看起来GetCustomAttributes()和Attributes属性在Profile78中不可用。 为什么?? 注意:我正在研究解决方法,方法是创建一个PCL Profile 104类库并包装GetCustomAttributes(),然后从我的PCL Profile78库中引用该库。 但是似乎不支持扩展方法…… 示例代码: public Pcl78Class() { Type t = this.GetType(); var attributes = t.Attributes; var customAttributes = t.GetCustomAttributes(true); // another weird thing: Why is VS CodeCompletion telling me it knows CustomAttributeExtensions class and methods? //System.Reflection.CustomAttributeExtensions.GetCustomAttributes(t); }

MonoDroid启动画面

如何在程序启动时实现简单的“启动画面”? 我正在复制一个SQLite数据库,它可能是一个很长的过程,不是UI“友好”。 我宁愿不使用“java代码”。 TIA

Xamarin自定义键盘

我正在尝试为特定页面创建custom keyboard ,并且在处理所有键的侦听器时遇到一些问题,并且此文档非常有限。 我正在使用Xamarin和C#进行开发: 所以我在这里有一个活动(OrderActivity): mKeyboard = new Keyboard(this,Resource.Layout.Keyboard); mKeyboardView = this.FindViewById (Resource.Id.keyboardview); mKeyboardView.Keyboard = mKeyboard; // PROBLEM HERE mKeyboardView.OnKeyboardActionListener = new KeyboardView.IOnKeyboardActionListener () {}; 有一个Keyboard.axml,它们完美地显示在屏幕上,但我有问题,不知道如何调用监听器,这里有人有任何教程或如何解决这个问题? 或者在创建自定义键盘时有其他选择吗?

获取当前的ViewModel MvvmCross

奇怪的是,我没有找到对互联网上这个非常简单的问题的直接回答。 如何在MvvmCross运行时中确定当前活动的ViewModel ? 可能吗? 如果没有,为什么我不应该这样做?