2分钟
7.5实施步骤
实施步骤
注:中用到的jar包为:ksoap2-android-assembly-2.4-jar-with-dependencies.jar需要用户自行下载并导入。
步骤1:完成activity_main.xml文件代码,包括标题TextView(手机号码段),一个EditText用于输入手机号码,Button作为查询按钮,另外有一个TextView用于显示结果。具体代码如下表7-5-1。
表7-5-1 activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/tv1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="手机号码(段):" />
<EditText
android:id="@+id/phone_sec"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textPhonetic"
android:singleLine="true"
android:hint="例如:1398547"
app:layout_constraintTop_toBottomOf="@id/tv1"/>
<Button
android:id="@+id/query_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text="查询"
app:layout_constraintTop_toBottomOf="@id/phone_sec" />
<TextView
android:id="@+id/result_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|center_vertical"
app:layout_constraintTop_toBottomOf="@id/query_btn"/>
</android.support.constraint.ConstraintLayout>2、在程序中添加如下表7-5-2代码:
表7-5-2MainActivity.Jav代码l
package com.hello.administrator.myapplication;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import android.os.Build;
import android.os.Bundle;
import android.os.StrictMode;
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 {
private Button searchButton;
private EditTextnumEditText;
private TextViewresultTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
searchButton = (Button)findViewById(R.id.query_btn);
numEditText = (EditText)findViewById(R.id.phone_sec);
resultTextView = (TextView)findViewById(R.id.result_text);
searchButton.setOnClickListener(new SearchBtnOnclickListener());
if (Build.VERSION.SDK_INT>= 11) {
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads ().detectDiskWrites().detectNetwork().penaltyLog().build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().detectLeakedClosableObjects().penaltyLog().penaltyDeath().build());
}
}
class SearchBtnOnclickListener implements OnClickListener{
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
String phoneNum = numEditText.getText().toString().trim();
if ("".equals(phoneNum) || phoneNum.length() < 7) {
Toast.makeText(getApplicationContext(), "号码太短!",Toast.LENGTH_LONG).show();
numEditText.requestFocus();
return;
}
resultTextView.setText(getRemoteInfo(phoneNum));
}
}
public String getRemoteInfo(String phoneSec) {
String nameSpace = "http://WebXml.com.cn/";
String methodName = "getMobileCodeInfo";
String endPoint = "http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx";
String soapAction = "http://WebXml.com.cn/getMobileCodeInfo";
SoapObjectrpc = new SoapObject(nameSpace, methodName);
rpc.addProperty("mobileCode", phoneSec);
rpc.addProperty("userId", "");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.bodyOut = rpc;
envelope.dotNet = true;
envelope.setOutputSoapObject(rpc);
HttpTransportSE transport = new HttpTransportSE(endPoint);
try {
transport.call(soapAction, envelope);
} catch (Exception e) {
e.printStackTrace();
}
SoapObject object = (SoapObject) envelope.bodyIn;
String result = object.getProperty("getMobileCodeInfoResult")
.toString();
return result;
}
}程序运行结果如下图7-5-1:
图7-5-1 手机号码归属地查询结果
学员评价