mono for android调用webServer服务
来源:互联网 发布:linux rm -rf 命令撤回 编辑:程序博客网 时间:2024/05/22 14:31
实现效果图-简陋的计算器功能,如下
程序分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-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(); }; } }}
代码,到此已完成!
源码下载
- mono for android调用webServer服务
- mono for android
- mono for android 图片
- mono for android 样式
- Mono for Android
- 什么是Mono for Android?
- Mono for Android
- Mono For Android
- Xamarin Mono For Android
- Mono For Android 服务service的学习(1)--本地服务
- mono for android播放声音
- mono for Android 之StartActivityForResult
- Mono for Android 之NFC
- Mono for Android 视频基础教程
- Mono For Android离线激活
- mono for Android截获短信
- Android for mono 科学计算器
- mono for android开发1
- Yum 使用教程
- HDU 1712 ACboy needs your help ----分组背包
- android代码签名机制有问题
- mosquitto的acl及用户配置
- ossec开源入侵检测系统安装配置
- mono for android调用webServer服务
- VFP_读写注册表的自定义函数
- VFP_等待 rar 命令结束
- VFP_全面控制EXCEL
- C#_获取 SQL服务器列表
- C#_WinForm的等待窗口
- SQL Server 2008_基本安装说明
- Linux下Apache服务器实现用户验证
- SQL Server 2008_企业版和开发版产品密钥