上篇文章我們建立一個很簡單的Library : com.example.blackfactory.UtilFunc 現在我們要在Xamarin 中呼叫囉!

首先我們要先成立一個橋接的專案 JARBridge ,這邊請注意 需要開 Java Bindings Library

接下來預設在專案中有一個Jars的檔案夾,我們就嵌入上篇文章中的 blackfactory.jar 

很重要一點請將該檔,在property 中 Build Action 設定成  Embeddedjar

這時候我們建立一支 Util.cs 來做轉介呼叫

C# Code :

using Com.Example.Blackfactory;
 
namespace JARBridge
{
 
    public class JARUtil
    {
        /// <summary>
        /// 將美金換台幣
        /// </summary>
        /// <param name="d"></param>
        /// <returns></returns>
        public double ConvertUS2NTFormJAR(double d)
        {
            //轉呼叫JAR 中的Method
            return UtilFunc.ConvertUSToNT(d);
        }
 
 
        /// <summary>
        /// 取得貨幣轉換資訊
        /// </summary>
        /// <param name="nation"></param>
        /// <returns></returns>
        public CurrencyInfo GetCurrencyInfoFormJAR(string nation)
        {
            return UtilFunc.GetCurrencyInfo(nation);
        }
    }
 
}

記得要using Com.Example.Blackfactory 你放心這些東西Xamarin 很溫馨的都有 intelligence sense


接下來建立一個主要的專案,剛剛那專案只是負責拿來橋接得而已 請注意,新建立好主要的專案記得設成Default Project 不然你會發現怎麼都執行不起來

Layout Code :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <Button
        android:id="@+id/btnCallJar"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="呼叫JAR METHOD" />
</LinearLayout>


Main Actiivity C#  Code :

using Android.App;
using Android.Widget;
using Android.OS;
 
namespace TestCallJar
{
    [Activity(Label = "TestCallJar", MainLauncher = true, Icon = "@drawable/icon")]
    public class Activity1 : Activity
    {
 
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
 
 
            SetContentView(Resource.Layout.Main);
 
 
            var btnCallJar = FindViewById<Button>(Resource.Id.btnCallJar);
 
            btnCallJar.Click += delegate
                {
                    var jarProvider = new JARBridge.JARUtil();
                    Toast.MakeText(this,
                                   " 100美金轉臺幣為 " + jarProvider.ConvertUS2NTFormJAR(100) + "," +
                                   jarProvider.GetCurrencyInfoFormJAR("en").NationName + "!!", ToastLength.Long).Show();
                };
        }
    }
}
 

記得不要忘記去reference JARBridge  這專案

測試結果:

參考:
http://docs.xamarin.com/guides/android/advanced_topics/java_integration_overview/binding_a_java_library_(.jar)

[Xamarin] 從Xamarin中呼叫 *.jar 的 library - 呼叫篇 (转帖)的更多相关文章

  1. [Xamarin] 從Xamarin中呼叫 *.jar 的 library -建立.jar篇 (转帖)

    嗯,這篇我們來聊聊如何從Xamarin 中來呼叫,已經包好的.jar ,首先因為要讓測試順利,我們開一個Android Java 的專案 當然是Eclipse ,然後我們簡簡單單寫一個測試用的libr ...

  2. Xamarin.Android 调用原生的Jar包

    我们有时候会从Android原生开发(Java)转移到Xamarin.Android开发时,需要将过去写好的Android Class Library直接嵌入到Xamarin.Android底下使用, ...

  3. Xamarin.Froms项目中包含的文件

    Clearly, the program created by the Xamarin.Forms template is very simple, so this is an excellent o ...

  4. 在Xamarin.iOS项目中使用预设数据库

    在Xamarin.iOS项目中使用预设数据库 当开发者准备好一个预设数据库文件后,就可以将这个数据库文件添加到创建的项目中了.本节将分别在Xamarin.iOS和Xamarin.Android项目中使 ...

  5. Xamarin iOS开发中的编辑、连接、运行

    Xamarin iOS开发中的编辑.连接.运行 创建好工程后,就可以单击Xamarin Studio上方的运行按钮,如图1.37所示,对HelloWorld项目进行编辑.连接以及运行了.运行效果如图1 ...

  6. XamarinSQLite教程在Xamarin.Android项目中提取数据库文件

    XamarinSQLite教程在Xamarin.Android项目中提取数据库文件 由于不能直接打开该文件,开发者需要先将数据库文件从Android系统中提取出来.操作步骤如下. (5)选择MyDoc ...

  7. XamarinSQLite教程在Xamarin.Android项目中定位数据库文件

    XamarinSQLite教程在Xamarin.Android项目中定位数据库文件 实际开发中,经常需要验证数据库操作的正确性.这个时候,需要打开数据库文件,进行确认.下面是如何找到MyDocumen ...

  8. XamarinSQLite教程在Xamarin.Android项目中使用数据库

    XamarinSQLite教程在Xamarin.Android项目中使用数据库 在Xamarin.Android项目中使用预设数据库的具体操作步骤如下: (1)创建一个Xamarin.Android项 ...

  9. XamarinSQLite教程Xamarin.iOS项目中打开数据库文件

    XamarinSQLite教程Xamarin.iOS项目中打开数据库文件 以下是打开MyDocuments.db数据库的具体操作步骤: (1)将Mac电脑上的MyDocuments.db数据库移动到W ...

随机推荐

  1. github简单使用教程

    github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开.对于一般人来说公共仓库就已经足够了,而且我们也没多少代码来管理,O(∩_∩)O ...

  2. 随机生成数字(ashx文件,调用上篇所写发送邮件代码)

    public void ProcessRequest(HttpContext context) { //邮件标题 string Email_Title = Dsis.Core.SysCore.PubF ...

  3. Linux 内核通知链随笔【中】

    关于内核通知链不像Netlink那样,既可以用于内核与用户空间的通信,还能用于内核不同子系统之间的通信,通知链只能用于内核不同子系统之间的通信.那么内核通知链到底是怎么工作的?我们如何才能用好通知链? ...

  4. Spring 4 官方文档学习(十五)CORS支持

    1.介绍 由于安全原因,浏览器禁止AJAX请求不在当前域内的资源.例如,你在一个浏览器标签中检查你的银行账户时,可能在另一个标签中打开了evil.com .来自evil.com的脚本绝对不可以用AJA ...

  5. 向modesim中添加alter库 (或者在每次仿真时将库文件加入仿真文件夹一起编译)

    在ModelSim中进行仿真需要加入Quartus提供的仿真库,原因是下面三个方面:    ·Quartus不支持Testbench:    ·调用了megafunction或者lpm库之类的Alte ...

  6. spring 事务:注解方式

    (1) .<context:component-scan base-package="*.*" /> 该配置隐式注册了多个对注解进行解析的处理器,如: Autowire ...

  7. myeclipse,eclipse打开当前文件所在文件夹

    方法一: eclipse打开当前文件所在文件夹的插件Run-->External Tools-->External Tools Configurations...new 一个 progra ...

  8. mysql galera cluster 集群的分裂与仲裁机制

    集群的分裂 当集群由于网络原因分裂为几个单独的组时(一组可能是单节点,也可能是几个互联的节点),数据出现不一致,此时可能产生脑裂及数据不一致.这种情况 下,只有一组节点能够继续提供服务,这组节点的状态 ...

  9. Maven + Eclipse + Tomcat - 开启项目调试之旅(转)

    本文的读者需要拥有一些Maven基础知识和实践,如果没有,请直接绕过或者先看一些关于Maven教程,比如Juven翻译的<Maven权威指南>,google一下便知. 开门见山,首先抛出一 ...

  10. android 常见面试题以及答案

    http://blog.csdn.net/bobo1808/article/details/6783344 1.    请描述下Activity的生命周期.2.    如果后台的Activity由于某 ...