Articles of mono

用C#编写Android应用程序(Xamarin)

我是一名C#程序员,想要编写一个Android应用程序。 我是一个顽固的吝啬鬼,并且再次拒绝写Java(在六年前切换到C#之后)。 除了Mono和MonoDroid(以及编写Java),我有什么选择吗? 或者我应该因为拒绝回到我的Java根源而感到愚蠢? Xamarin比Phonegap等其他人的优点和缺点是什么? (请不要与Java相关而不是C#讨论。当我问起如何回复Java根源时,我一直在说话。)

xamarin中的“布局渲染器失败”错误

我有一个运行良好的Android项目示例(可以在手机上构建和安装)。 但是,每当我双击xamarin环境中Layout文件夹中的任何文件以在设计模式下查看布局时,都会显示以下消息。 (我的xamarin版本是4.0.13) 我看到这个问题,但没有提供答案。 任何帮助将不胜感激。

在MvvmCross上使用Android上的通知

我确实想要创建一个实现类似通知服务的插件。 所以我现在正在做的是这样的: var activity = Mvx.Resolve().Activity; var builder = new NotificationCompat.Builder(activity.ApplicationContext) .SetContentTitle(title) .SetSmallIcon(Resource.Drawable.Icon) .SetContentText(message); var notificationManager = (NotificationManager)activity.ApplicationContext.GetSystemService(Context.NotificationService); notificationManager.Notify(0, builder.Build()); 这很好,并且确实显示了应该显示的通知。 下一步是,我想从通知导航到我的活动。 这意味着在MvvmCross中我想导航到我的ViewModel。 但是,我现在如何将ShowViewModel () – Command打包到此通知中? 这有可能吗? 在原生android上我会创建一个PendingIntent,它确实指向我要显示的Activity。 任何想法? 暗示? 小费? 🙂

Mono for Android – 它是如何工作的?

我发现Xamarin应用程序在Android上运行Mono runtinme,事情传递给Dalvik。 但我不能理解的是,应用程序如何在Mono中运行,但正常的应用程序在Dalvik中执行。 在Mono应用程序中有什么不同,它在Mono而不是Dalvik中运行。 Mono如何与Dalvik处于同一水平? 我想,Mono应该以某种方式存储在Dalvik中运行的应用程序中。 请向我解释怎么可能,对不起我的坏语言。

Mono for Android – 支持的架构 – Drop x86?

我们有一个近乎完整的应用程序,并试图挤压谷歌播放的50MB下载限制。 在检查我们的APK以试图find丢弃文件大小的方法时,我注意到这里描述的lib\x86 , lib\armeabi和lib\armeabi-v7a目录。 它们对应于Mono for Android项目的项目选项中的“支持的体系结构”选项。 如果我删除x86,我会在APK大小上节省大约1.1 MB。 (这几乎足以让我们低于50MB) 删除x86有什么缺点? 我的APK还能在x86设备上运行吗? 在Google Play for x86设备上是否有大量的市场份额? 如果它无法在x86上运行,Google Play是否会阻止我的APK安装在x86设备上?

错误MSB4185:尚未启用“System.Globalization.CultureInfo”执行

尝试使用Mono for Android构建MonoDevelop时出现此错误。 根据调试它不在我的代码中,所以我离开了无知。 任何想法? 错误MSB4185:尚未启用“System.Globalization.CultureInfo”types上的“CurrentUICulture”函数。 (MSB4185)

Xamarin.Forms访问代码中用标记编写的控件

我试图将一些项添加到Listview,我在xaml文件中使用Xamarin.Forms标记添加。 可以通过单击事件挂钩来访问该按钮。但由于列表视图为空,我需要像winforms中的ondraw这样的事件,以便在绘制时可以挂钩。 在XAML文件中,我有: 在.cs文件中我有 using System; using Xamarin.Forms; namespace ButtonXaml { public partial class ButtonXamlPage { int count = 0; public ButtonXamlPage() { InitializeComponent(); } public void OnButtonClicked(object sender, EventArgs args) { ((Button)sender).Text = “You clicked me”; } } } 所以我应该挂钩Listview中的事件,还是像我们在android中那样做一些类似Resource.getElementbyID事情

Monodroid – 处理ListAdapter行中的Click事件

我有一个设置了ArrayAdapter的ListView,并且适配器中的每一行都包含四个需要接收和处理点击事件的按钮。 通常在Android中,我在创建单元格时会在每个按钮上调用SetOnClickListener ,但是Mono可以为Click事件设置事件处理程序。 看起来在Mono中有一些奇怪的东西,因为我遇到了两个问题之一,这取决于我设置事件处理程序的位置。 ArrayAdapter GetView示例1: View tweetCell = convertView; if (tweetCell == null) { tweetCell = ((LayoutInflater)Context.GetSystemService (Context.LayoutInflaterService)).Inflate (Resource.Layout.TweetCell, null); tweetCell.FindViewById (Resource.Id.btn_moveTweet).Click += (object sender, EventArgs e) => MoveTweet (GetItem(position)); tweetCell.FindViewById (Resource.Id.btn_unfavoriteTweet).Click += (object sender, EventArgs e) => UnfavoriteTweet (GetItem(position)); tweetCell.FindViewById (Resource.Id.btn_hideTweet).Click += (object sender, EventArgs e) => HideTweet (GetItem(position)); tweetCell.FindViewById (Resource.Id.btn_shareTweet).Click += (object […]

Resource.designer.cs不在Mono中重新生成(Xamarin Studio)

我目前正在使用Mono开发应用程序,我最近更新到Xamarin Studio 4.0.8,并且遇到了未添加到解决方案中的设计元素的问题。 我尝试手动编辑designer.cs,稍后我删除了它,希望程序将重新生成它,并更改布局。 我努力了: 重建它 清洁和重建 通过文件资源管理器擦除文件 并且它仍然无法正常重新生成,Xamarin创建了Resource.designer.cs,但它是空的,并且在编译时它返回: Error CS0103: The name ‘Resource’ doesn’t exist in the current context (CS0103) 请帮助…

苦苦挣扎,了解Xamarinexception处理

我一直在爬上互联网很长一段时间,希望有一个解决方案,我遇到了很多答案,但这些都没有达到我想要的目的。 我正在尝试处理exception而不会导致应用程序崩溃。 而不是简单地退出应用程序,我宁愿捕获exception,向用户呈现更加用户友好的错误(可能是消息框警告)并允许他们在应用程序中继续操作。 是否有可能阻止应用程序纾困? 我目前试图抓住这个的方式如下: public class Login : Activity { int count = 1; Session mySession; protected override void OnCreate(Bundle bundle) { AndroidEnvironment.UnhandledExceptionRaiser += HandleAndroidException; base.OnCreate(bundle); // Set our view from the “main” layout resource SetContentView(Resource.Layout.Login); Button button = FindViewById(Resource.Id.Login); string accountCode = Resource.Id.AccountCode.ToString(); string password = Resource.Id.Password.ToString(); // button.Click += delegate { button.Text […]