Android应用软件开发

194课时
2.6K学过
8分

课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
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:

9

图7-5-1 手机号码归属地查询结果