这个问题与推荐的体系结构以及人们以前使用C#,Monotouch和Monodroid开发的跨平台WP7,iOS,Android应用程序的经验具体相关。 我在 这里和这里研究了以前的问题。 他们提供了很好的答案,但不是我所期待的。 我也发现了这个优秀的问题 , 这个问题确实影响了成本效益,所以有一些重叠。 我有一个要求,开发一个跨平台的iPhone / iPad,WP7和Android应用程序的健康和健身公司,这将与他们的网站整合。 该应用程序需要less量的本地数据存储离线模式和同步networking时,networking可用。 我是一名Windows(C#/ C ++)开发人员,并不想真正走下三个Objective C,Java和C#应用程序的路线,尽pipe如果必须的话。 我也将作为技术主pipe,在这个项目上为一个团队耕种一些工作。 我想知道这里的人是否有使用Monotouch,Monodroid和WP7进行跨平台开发的经验,并分享他们在应用程序架构方面的经验,以便尽可能多地使用代码。 我正在考虑的架构如下: 我的问题如下: 有没有人试过这样的事情? 这些框架(Monotouch,monodroid)是否值得他们从事这类工作? 我可以设置整个项目在Visual Studio 2010与Monotouch,Monodroid和Wp7目标(但共享代码使用“添加为链接”)单独的项目(DLL / EXE)? 对于这个(或者类似的)体系结构,我可以切实地期望什么样的代码重用? 即,我可以使用什么策略/模式来重用本地数据访问,Web服务和业务逻辑? 最好的祝福,
我试图创build一个DialogFragment使用我自己的布局。 我见过几种不同的方法。 有时候,布局是这样设置的OnCreateDialog :(我使用单声道,但我已经习惯了Java) public override Android.App.Dialog OnCreateDialog (Bundle savedInstanceState) { base.OnCreateDialog(savedInstanceState); AlertDialog.Builder b = new AlertDialog.Builder(Activity); //blah blah blah LayoutInflater i = Activity.LayoutInflater; b.SetView(i.Inflate(Resource.Layout.frag_SelectCase, null)); return b.Create(); } 这第一种方法适用于我…直到我想使用findViewByID. 所以经过一番search后,我尝试了第二种方法,其中涉及覆盖OnCreateView 所以我注释了两行OnCreateDialog ,它们设置了Layout,然后添加了这个: public override Android.Views.View OnCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.Inflate(Resource.Layout.frag_SelectCase, container, false); //should be able to use […]
我需要在Xamarin.Forms和Xamarin原生应用程序之间进行select。 我想与Xamarin.Forms作为UI代码将被共享。 那么Xamarin.Forms与Native相比有什么缺点?
假设我有一个完整的文件path,如:(/ sdcard / tlogo.png)。 我想知道它的MIMEtypes。 我为它创build了一个函数 public static String getMimeType(File file, Context context) { Uri uri = Uri.fromFile(file); ContentResolver cR = context.getContentResolver(); MimeTypeMap mime = MimeTypeMap.getSingleton(); String type = mime.getExtensionFromMimeType(cR.getType(uri)); return type; } 但是当我调用它,它返回null。 File file = new File(filePath); String fileType=CommonFunctions.getMimeType(file, context);
当试图将我的应用程序部署到Android设备时,出现以下错误: Deployment failed because of an internal error: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE] 我知道这个问题,但该应用程序未安装。 在尝试部署期间,它已被Visual Studio删除/部分删除。 在过去,我通过从谷歌播放商店下载的应用程序,然后从设置 – >应用程序pipe理器中解决这个问题。 但是,现在我正在尝试安装它时收到错误“不兼容的更新”。 我试图使用Titanium备份和其他一些东西,但没有运气去除它。 编辑1 我意识到(从@Motz),我没有提到,明显的解决scheme不起作用。 即,该应用程序不会出现在设置 – >应用程序
我在Android.App中找不到FragmentPagerAdapter。 我不想使用Android.Support.V4.App中的Fragment,因为我的目标API是14以上(Android 4.0以上)。 所以,我只想使用Android.App.Fragments,并有关联的类。 我只发现它在Android.Support.V4.App,但是这不足以让我b / c我试图使用Android.App.Fragment的(不是Android.Support.V4.App.Fragment的)和那里Android.App(不是Android.Support.V4.App)中的相关类,如果我从FragmentPagerAdapter派生我的分页器(如果它来自支持库),我的代码就不会编译,因为Android.App和Android.Support之间的结果types不匹配.V4.App。 就像在这里的情况不能转换为android.app.Fragment ,是否有一个“普通”的pager(PagerAdapter)类,我应该使用的地方FragmentPagerAdapter或东西(就像你从正常的活动,而不是FragmentActivity派生,当瞄准API 11或更高)。 以下是我正在使用的示例代码(它来自https://github.com/xamarin/monodroid-samples/tree/master/Support4中的MonoDroid示例的Support4.sln解决scheme中的FragmentPagerSupport.cs文件)。 我已经注释了引用Android.Support.V4.App的行,并将其replace为引用Android.App的代码。 Android.Support.V4.App之外没有FramePagerAdapter,我可以find,我真的需要它)。 谢谢。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Android.App; using Android.Content; using Android.OS; using Android.Runtime; using Android.Views; using Android.Widget; //using Android.Support.V4.App; //using Android.Support.V4.View; namespace Support4 { [Activity (Label = "@string/fragment_pager_support")] [IntentFilter (new[]{Intent.ActionMain}, Categories = new[]{ "mono.support4demo.sample" })] //public class FragmentPagerSupport […]
我正在构build一个使用定制的TwoDScrollView在这里find的Android应用程序: http://blog.gorges.us/2010/06/android-two-dimensional-scrollview/ 这个类可以在其他几个网站上find,Stack Overflow的其他人也提出了一些问题。 我在之前使用Java / Eclipse构build的Android应用程序中使用了它,而且我取得了成功。 用我目前的应用程序,我想使用C#和MonoDroid。 我决定用C#重写整个TwoDScrollView类。 重写后,然后在一些布局XML中使用它,当我尝试运行我的代码时,出现以下exception: System.NotSupportedException已被抛出。 无法从本地句柄44f4d310激活types为MyProject.TwoDScrollView的实例。 System.Exception:没有为MyProject.TwoDScrollView ::。ctor(System.IntPtr,Android.Runtime.JniHandleOwnership)find构造函数……更多的文本后面…. 我的布局XML如下所示: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <myproject.TwoDScrollView android:layout_width="fill_parent" android:layout_height="fill_parent"> </myproject.TwoDScrollView> </RelativeLayout> 按照以下链接中关于在MonoDroid中使用布局XML中的自定义视图的说明: http ://docs.xamarin.com/android/advanced_topics/using_custom_views_in_a_layout TwoDScrollView类的构造函数如下所示: public TwoDScrollView(Context context) : base(context) { initTwoDScrollView(); } public TwoDScrollView(Context context, IAttributeSet attrs) : base(context, attrs) { initTwoDScrollView(); } public TwoDScrollView(Context context, […]
我使用MvxBindableListView将数据对象的List<>绑定到ListView 。 我用于行的布局有几个TextView 。 我成功地将每个这些的Text属性绑定到我的数据对象中的一个属性,但是我发现我无法绑定到TextColor因为该属性在Mono For Android TextView中不存在; 而是使用SetTextColor()方法。 那么如何将一个数据对象属性绑定到一个方法? 以下是我尝试使用的代码: <TextView android:id="@+id/MyValueTextView" android:layout_width="50dp" android:layout_height="20dp" android:layout_gravity="right" android:gravity="center_vertical|right" android:textSize="12sp" local:MvxBind=" { 'Text':{'Path':'MyValue','Converter':'MyValueConverter'}, 'TextColor':{'Path':'MyOtherValue','Converter':'MyOtherConverter'} }" />
我想保存和检索我的Xamarin.Android项目中的一些应用程序设置。 我知道在Android(java)中,我使用SharedPreferences类来存储这些信息,但我不知道如何将其转换为Xamarin C#。 当我在Xamarin Studio IDE中键入“SharedPreferences”时,没有自动完成,所以我不知道该怎么用。 最初的interwebssearch带我到一个相关的问题,但只包含Android的Java: 在xamarin中使用共享首选项 所以总结一下: 什么是Xamarin Android C#相当于 Android Java的SharedPreferences ?
我有 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#FFFF00" /> <padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp" /> </shape> <TextView android:background="@drawable/test" android:layout_height="45dp" android:layout_width="100dp" android:text="Moderate" /> 所以现在我想要这个形状根据我从Web服务调用返回的信息来改变颜色。 所以它可能是黄色或绿色或红色或任何取决于我从networkingserivce调用收到的颜色。 我怎样才能改变形状的颜色? 基于这些信息?