mono for android调用webServer服务

实现效果图-简陋的计算器功能,如下

                      

程序分2部分,

1.  websever服务

2.  Android客户端

---------------------------------------


1.  websever服务


(在服务类只用到了,ICalculator.cs、Calculator.cs,其他接口类和实现这个接口方法,本程序不用)

1-1 ICalculator接口类

/********************************************
 ** 类编  号:
 *
 ** 作    用:实现计算器类接口
 *
 ** 作    者:lcb
 *
 ** 编写日期:2013-7-4
 *********************************************/

using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;

namespace CeService
{
    [ServiceContract]
    public interface ICalculator
    {

        /// <summary>
        /// 加法
        /// </summary>
        /// <param name="num1">第一个数</param>
        /// <param name="num2">第二个数</param>
        /// <param name="num">结果</param>
        /// <returns></returns>
        [OperationContract]
        string Add(double num1, double num2,ref double num);


        /// <summary>
        /// 减法
        /// </summary>
        /// <param name="num1">第一个数</param>
        /// <param name="num2">第二个数</param>
        /// <param name="num">结果</param>
        /// <returns></returns>
        [OperationContract]
        string Reduce(double num1, double num2, ref double num);



        /// <summary>
        /// 乘法
        /// </summary>
        /// <param name="num1">第一个数</param>
        /// <param name="num2">第二个数</param>
        /// <param name="num">结果</param>
        /// <returns></returns>
        [OperationContract]
        string Division(double num1, double num2, ref double num);


        /// <summary>
        /// 除法
        /// </summary>
        /// <param name="num1">第一个数</param>
        /// <param name="num2">第二个数</param>
        /// <param name="num">结果</param>
        /// <returns></returns>
        [OperationContract]
        string Multiplication(double num1, double num2, ref double num);
    }
}

1-2 实现接口类 Calculator

/********************************************
 ** 类编  号:
 *
 ** 作    用:实现计算器类
 *
 ** 作    者:lcb
 *
 ** 编写日期:2013-7-4
 *********************************************/
using System;
using System.Collections.Generic;
using System.Text;

namespace CeService
{
  public class Calculator:ICalculator
    {

      


        /// <summary>
        /// 加法
        /// </summary>
        /// <param name="num1">第一个数</param>
        /// <param name="num2">第二个数</param>
        /// <param name="num">结果</param>
        /// <returns></returns>
        /// 
        public string Add(double num1, double num2, ref double num)
        {           
            try
            {
                num = num1 + num2;
                return "1";
            }
            catch (Exception ex)
            {
                return ex.ToString();
            }
        }

        /// <summary>
        /// 减法
        /// </summary>
        /// <param name="num1">第一个数</param>
        /// <param name="num2">第二个数</param>
        /// <param name="num">结果</param>
        /// <returns></returns>
        public string Reduce(double num1, double num2, ref double num)
        {
            try
            {
                num = num1 - num2;
                return "1";
            }
            catch (Exception ex)
            {
                return ex.ToString();
            }
        }


        /// <summary>
        /// 乘法
        /// </summary>
        /// <param name="num1">第一个数</param>
        /// <param name="num2">第二个数</param>
        /// <param name="num">结果</param>
        /// <returns></returns>
        public string Division(double num1, double num2, ref double num)
        {
            try
            {
                num = num1 * num2;
                return "1";
            }
            catch (Exception ex)
            {
                return ex.ToString();
            }
        }

        /// <summary>
        /// 除法
        /// </summary>
        /// <param name="num1">第一个数</param>
        /// <param name="num2">第二个数</param>
        /// <param name="num">结果</param>
        /// <returns></returns>
        public string Multiplication(double num1, double num2, ref double num)
        {
            try
            {
                num = num1 / num2;
                return "1";
            }
            catch (Exception ex)
            {
                return ex.ToString();
            }
        }

        
    }
}

1-3 App.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <!--<appSettings>
    <add key="ConnectionString" value="Data Source=.;Initial Catalog=yanshi2010;uid=sa;pwd=sa" />
    <add key="SMSPort" value="3" />
    <add key="SMSBaudRate" value="19200" />
    <add key="SMSState" value="false" />
  </appSettings>-->
  <system.serviceModel>
    <services>
      <!--平台服务---------------Start-->
      <!-- 服务接口实现类 -->
      <service name="CeService.Calculator" behaviorConfiguration="ServiceBehavior">
        <!-- 服务接口 -->
        <endpoint address="" binding="basicHttpBinding" contract="CeService.ICalculator" />
        <host>
          <baseAddresses>
            <add baseAddress="http://192.168.0.220:5818/CeService" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="ServiceBehavior">
          <serviceMetadata httpGetEnabled ="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

开启服务(代码大家都知道怎么写吧,省略 。重点是讲解android方面)


————————————————————————————————————————————————————————————————

————————————————————————————————————————————————————————————————

2.  Android客户端

项目整体:


2-1 添加web引用(地址是你配置文件设置好的,如上图)

2-2 Main.axml


代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <EditText
        android:id="@+id/txtPhoneNo"
        android:layout_width="304.0dp"
        android:phoneNumber="true"
        android:hint="请输入第一个数"
        android:layout_height="wrap_content"
        android:layout_marginTop="5px"
        android:layout_marginLeft="5px" />
    <EditText
        android:id="@+id/txtSMS"
        android:layout_width="313.3dp"
        android:layout_height="40.0dp"
        android:phoneNumber="true"
        android:gravity="top"
        android:hint="请输入第二个数"
        android:layout_below="@id/txtPhoneNo" />
    <Button
        android:id="@+id/btnadd"
        android:text="加"
        android:layout_width="69dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/txtSMS" />
    <Button
        android:id="@+id/btnjian"
        android:text="减"
        android:layout_width="69dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/txtSMS"
        android:layout_toRightOf="@id/btnadd" />
    <Button
        android:id="@+id/btncheng"
        android:text="乘"
        android:layout_width="69dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/txtSMS"
        android:layout_toRightOf="@id/btnjian" />
    <Button
        android:id="@+id/btnchu"
        android:text="除"
        android:layout_width="69dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/txtSMS"
        android:layout_toRightOf="@id/btncheng" />
    <EditText
        android:id="@+id/txtjieguo"
        android:layout_width="fill_parent"
        android:layout_height="40.7dp"
        android:gravity="top"
        android:hint=""
        android:layout_below="@id/btnchu" />
</RelativeLayout>

2-3 Activity1.cs

using System;

using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

namespace Databasedemo
{
    [Activity(Label = "Databasedemo", MainLauncher = true, Icon = "@drawable/icon")]
    public class Activity1 : Activity
    {

        EditText tvjg;
        EditText num1;
        EditText num2;
        double num = 0;
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            //加
            Button btnadd = FindViewById<Button>(Resource.Id.btnadd);
            //减
            Button btnjian = FindViewById<Button>(Resource.Id.btnjian);
            //乘
            Button btncheng = FindViewById<Button>(Resource.Id.btncheng);
            //除
            Button btnchu = FindViewById<Button>(Resource.Id.btnchu);
            //第一个数
            num1 = FindViewById<EditText>(Resource.Id.txtPhoneNo);
            //第二个数
            num2 = FindViewById<EditText>(Resource.Id.txtSMS);
            //结果
            tvjg = FindViewById<EditText>(Resource.Id.txtjieguo);

             WebReference.Calculator ca = new WebReference.Calculator();

             btnadd.Click += delegate
             {             
                
                 double num1s = Convert.ToDouble(num1.Text.ToString());
                 double num2s = Convert.ToDouble(num2.Text.ToString());

                 string flag = ca.Add(num1s, num2s, ref num);
                 tvjg.Text = num1s.ToString() + "+" + num2s.ToString() + "=" + num.ToString();
             };

             btnjian.Click += delegate
             {
                 double num1s = Convert.ToDouble(num1.Text.ToString());
                 double num2s = Convert.ToDouble(num2.Text.ToString());

                 string flag = ca.Reduce(num1s, num2s, ref num);
                 tvjg.Text = num1s.ToString() + "-" + num2s.ToString() + "=" + num.ToString();
             };

             btncheng.Click += delegate
             {
                 double num1s = Convert.ToDouble(num1.Text.ToString());
                 double num2s = Convert.ToDouble(num2.Text.ToString());

                 string flag = ca.Division(num1s, num2s, ref num);
                 tvjg.Text = num1s.ToString() + "*" + num2s.ToString() + "=" + num.ToString();
             };
             btnchu.Click += delegate
             {
                 double num1s = Convert.ToDouble(num1.Text.ToString());
                 double num2s = Convert.ToDouble(num2.Text.ToString());

                 string flag = ca.Multiplication(num1s, num2s, ref num);
                 tvjg.Text = num1s.ToString() + "/" + num2s.ToString() + "=" + num.ToString();
             };
        }      
    }
}

代码,到此已完成!

源码下载



评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值