package com.example.usewebservice;import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapSerializationEnvelope;import org.ksoap2.transport.HttpTransportSE;import android.os.Bundle;import android.os.Handler;import android.os.Looper;import android.os.Message;import android.annotation.SuppressLint;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity{/**  *  * Android平台调用WebService(手机号码归属地查询) * @author yejianping   * @date 2014-4-3  * 要先把ksoap2-android-assembly-2.5.4-jar-with-dependencies.jar这个库导入到lib里面 *   **/public EditText text ;public Button button;public TextView tx;public String telephone_number;public MyThread thread;public Handler handler; @SuppressLint("HandlerLeak")@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);text = (EditText)findViewById(R.id.editText1);button = (Button)findViewById(R.id.button1);thread = new MyThread();button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v){// TODO 自动生成的方法存根  telephone_number = text.getText().toString().trim();if(telephone_number.equals("")||telephone_number.length()<7){text.setError("您输入的手机号码(段)有误!");text.requestFocus();}else{new Thread(thread).start();;}}});handler = new Handler() {@SuppressLint("HandlerLeak")public void handleMessage(Message msg) {switch (msg.what) {case 0x01:Bundle bundle = new Bundle();    bundle = msg.getData();    Toast.makeText(MainActivity.this, bundle.getString("result"), Toast.LENGTH_SHORT).show();}}};}//创建线程    public  class MyThread implements Runnable    {   public void run()    {      Looper.prepare();//创建本线程的消息队列并初始化      getTelephoneInfo(telephone_number);      Looper.loop();//开始运行消息队列   }     }public void getTelephoneInfo(String phone_number){//命名空间String nameSpace = "http://WebXml.com.cn/";//调用的方法名称String methodName = "getMobileCodeInfo";// webservice的网址String URL = "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx";//命名空间+方法String soapAction = "http://WebXml.com.cn/getMobileCodeInfo";// 指定WebService的命名空间和调用的方法名SoapObject rpc = new SoapObject(nameSpace, methodName);// 设置需调用WebService接口需要传入的两个参数mobileCode、userIdrpc.addProperty("mobileCode", phone_number);rpc.addProperty("userId", "");// 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);envelope.bodyOut = rpc;// 设置是否调用的是dotNet开发的WebServiceenvelope.dotNet = true;// 等价于envelope.bodyOut = rpc;envelope.setOutputSoapObject(rpc);HttpTransportSE transport = new HttpTransportSE(URL);try {// 调用WebServicetransport.call(soapAction, envelope);}catch (Exception e){e.printStackTrace();} // 获取返回的数据SoapObject object = (SoapObject) envelope.bodyIn;// 获取返回的结果String result = object.getProperty("getMobileCodeInfoResult").toString();Message msg=new Message();Bundle bundle = new Bundle();bundle.putString("result", result);msg.setData(bundle);msg.what = 0x01;handler.handleMessage(msg);//return result;// 将WebService返回的结果显示在TextView中//tx.setText(result);}@Overridepublic boolean onCreateOptionsMenu(Menu menu){// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
  
  

xml的代码为;

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:background="@drawable/dd"    android:layout_height="fill_parent" >    <TextView        android:id="@+id/textView1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentTop="true"        android:layout_centerHorizontal="true"        android:layout_marginTop="24dp"        android:text="手机号码归属地查询"        android:textSize="30sp"        android:textStyle="bold" />    <EditText        android:id="@+id/editText1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:layout_alignParentRight="true"        android:layout_below="@+id/textView1"        android:layout_marginTop="23dp"        android:phoneNumber="true"        android:hint="请至少输入你手机号码的前7位"        android:ems="10" />    <Button        android:id="@+id/button1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentLeft="true"        android:layout_alignParentRight="true"        android:layout_centerVertical="true"        android:text="查询" /> </RelativeLayout>

源码下载

更多相关文章

  1. Android中设置全屏的方法
  2. android scrollview嵌套listview出现高度显示不全解决方案
  3. Android(安卓)HAL:helloworld例程
  4. Android中设置全屏的方法
  5. Android(安卓)Gridview 禁止滚动的二种方法
  6. How to get the android resolution
  7. Android(安卓)触摸消息处理
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. adb shell 调试 Android 串口
  2. 还原Android彩信数据库
  3. Android中利用Handler实现消息的分发机制
  4. Android(安卓)Paging Library 基于Recycl
  5. 实现一个用于显示当前时间的Google Andro
  6. Android REST 开发网络跳棋对战程序
  7. 浅谈Android 的线程和线程池的使用
  8. Hierarchy Viewer测试工具
  9. android 如何使用SAX解析XML
  10. 使用delphi 开发 web(五)Android 与delphi