样式代码:
<?
xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns: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:id="@+id/content_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="com.example.administrator.my_application.MainActivity" tools:showIn="@layout/app_bar_main"> <CheckBox android:text="记住密码" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="35dp" android:layout_marginStart="35dp" android:id="@+id/ispwd" android:layout_below="@+id/password" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="33dp" /> <Button android:text="登陆" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/bt_login" android:layout_alignBottom="@+id/ispwd" android:layout_alignRight="@+id/password" android:layout_alignEnd="@+id/password" android:elevation="0dp" android:onClick="Login" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType="textPersonName" android:ems="10" android:layout_marginTop="20dp" android:id="@+id/username" android:layout_alignParentTop="true" android:layout_alignLeft="@+id/ispwd" android:layout_alignStart="@+id/ispwd" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType="textPassword" android:ems="10" android:id="@+id/password" android:layout_below="@+id/username" android:layout_alignLeft="@+id/username" android:layout_alignStart="@+id/username" /> </RelativeLayout>

 1 private  String reduio="";
 2 public void Login(View view) {
 3     reduio="";
 4     
 5     String username="";String password="";
 6     EditText editText1 =(EditText)findViewById(R.id.username);
 7     username=editText1.getText().toString();
 8     EditText editText2 =(EditText)findViewById(R.id.password);
 9     password=editText2.getText().toString();
10     if(username.isEmpty()) {
11 ShowMessage("用户名不能为空!");
12 
13     }else if(password.isEmpty())
14     {
15 ShowMessage("密码不能为空!");
16     }
17     else
18     {
19         
20         new Thread(networkTask).start();
21         while (reduio.equals(""))
22         {
23         }
24         if(reduio.equals("1"))
25         {
26             
27             ShowMessage("登陆成功!");
28
31             Intent intent = new Intent(MainActivity.this,ArticleListListActivity.class);
32 
33             startActivity(intent);
34         }
35         else
36         { 
39             ShowMessage("账号或密码错误!");
40         }
41     }
42 }
43 Runnable networkTask = new Runnable( ) {
44     @Override
45     public void run() {
46         String nameSpace = "http://tempuri.org/";//用下面的测试地址,打开,找到命名空间,目前我测试的是这个
47         String methodName = "UserLogin";//方法名
48         String endPoint = "http://xxxxx/OneLogin.asmx?WSDL";//个人的测试接口,经过本人测试,只能用IP才能访问,不能通过域名访问,当然我是本机的模拟器,我是本地的android studio
49         String soapAction = "http://tempuri.org/UserLogin";
50         
51         String username="";String password="";
52         EditText editText1 =(EditText)findViewById(R.id.username);
53         username=editText1.getText().toString();
54         EditText editText2 =(EditText)findViewById(R.id.password);
55         password=editText2.getText().toString();
56         SoapObject rpc = new SoapObject(nameSpace, methodName);
57         rpc.addProperty("usernmae", username);
58         rpc.addProperty("password", password);
59         // 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本
60         SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10);
61         envelope.bodyOut = rpc;
62         // 设置是否调用的是dotNet开发的WebService
63         envelope.dotNet = true;
64         // 等价于envelope.bodyOut = rpc;
65         envelope.setOutputSoapObject(rpc);
66         HttpTransportSE transport = new HttpTransportSE(endPoint);
67         try {
68             // 调用WebService
69             transport.call(soapAction, envelope);
70         } catch (Exception e) {
71             e.printStackTrace();
72             reduio="no";
73         }
74         SoapObject object = (SoapObject) envelope.bodyIn;
75         if(object!=null) {
76             String result = object.getProperty(0).toString();
77             reduio=result;
78         }
79 
80     }
81 };
82 private  void ShowMessage(String msg)
83 {
84     Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
85 }

 我这个代码确实自己看着也不太好,总觉得很多地方多余,比如为什么要把调用方法隔离出来,但是本人测试过,直接调用,直接给你报错,UI线程中不能访问网络,必须重新写个线程去访问,所以上面我写了一个while不停的循环,看看方法是否执行成功,

 我不知道用安卓机会不会这样,但是模拟器确实不怎么行的通。

 

给自己的 一点笔记吧,加油。继续,下一篇应该是写列表和数据展示,给自己一点勇气继续学下去。