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 Gridview 禁止滚动的二种方法
  2. Android 去掉title bar的3个方法
  3. android抓取各种log的方法
  4. android 捕获返回(后退)按钮事件的两种方法
  5. ubuntu 不是 识别 android 设备 解决方法
  6. Android EditText中添加图标的简单方法
  7. android隐藏以及显示软键盘以及不自动弹出键盘的方法
  8. Ubuntu下Eclipse开发Android经常崩溃的解决方法

随机推荐

  1. TypeScript高级类型与实用程序
  2. HDFS是如何设计架构的?
  3. 真正衡量一个人的不是钱和地位,而是爱人的
  4. 我们想做成什么样的人,就能做成什么样的人
  5. 我们相信美好的未来一定会来
  6. 虽然我们怕受到伤害,但我们都非常的爱别人
  7. 找工作不理想,可能是这些原因,致刚出校门的
  8. 不是朋友不够好,而是有些事只能我们自己去
  9. 3种应对忧虑和不确定感的方式
  10. C语言数组(下)