linux webservice 客户端,Android访问webservice.客户端登录注册

今天把登录注册写了一下,百度解决了两个问题:

1.模拟器输入中文,就长按然后选择谷歌输入法就好

2.得到自定义的Dialog上的组件信息,主要要通过view获得,不能直接就用findviewbyid

之前的saveUser 和 findUserByName也简单的封装成了函数

界面如下,一切从简单处理

后台打印处理结果

关于这个对话框,处理逻辑比较麻烦。使用SharedPreferences保存一个变量来控制对话框的出现。第一次登陆的时候要出现,登录成功后,下次一次就不用弹出了,如果出现错误,这个对话框还要出现。

47a991b01b3709c928204eec1875497a.png

代码

package seu.xin.webservice;

import java.io.IOException;

import org.ksoap2.SoapEnvelope;

import org.ksoap2.serialization.SoapObject;

import org.ksoap2.serialization.SoapSerializationEnvelope;

import org.ksoap2.transport.HttpTransportSE;

import org.xmlpull.v1.XmlPullParserException;

import seu.xin.entity.UserInfo;

import com.google.gson.Gson;

import Android.app.Activity;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.content.SharedPreferences;

import android.content.SharedPreferences.Editor;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.widget.EditText;

import android.widget.Toast;

public class WebserviceActivity extends Activity {

/** Called when the activity is first created. */

private static final String NAMESPACE = "http://10.6.11.20/";

private static String URL = "http://10.6.11.20:8080/webservicedemo/services/webservice";

private static final String SAVE_METHOD_NAME = "save";

private static final String FIND_METHOD_NAME = "findUserByName";

private static String SOAP_ACTION = "http://10.6.11.20:8080/webservicedemo/services/";

AlertDialog loginRegDialog ;

SharedPreferences sp  ;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

sp = this.getSharedPreferences("data",MODE_WORLD_READABLE);

boolean isFirst = sp.getBoolean("first", true);

if(isFirst){

showloginRegDialog();

return;

}else{

System.out.println("isFirst-------->"+isFirst);

}

}

public void showloginRegDialog() {

// TODO Auto-generated method stub

LayoutInflater factory = LayoutInflater.from(WebserviceActivity.this);

final View loginRegView = factory.inflate(R.layout.login, null);

AlertDialog.Builder builder = new AlertDialog.Builder(WebserviceActivity.this);

builder.setIcon(R.drawable.dialog_login)

.setTitle("Welcome to our app")

.setView(loginRegView)

.setPositiveButton("登陆", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

EditText etName = (EditText)loginRegView.findViewById(R.id.login_name);

EditText etPassword= (EditText) loginRegView.findViewById(R.id.login_password);

String name = etName.getText().toString();

String password = etPassword.getText().toString();

System.out.println("login name"+name+"password"+password);

UserInfo loginUser = new UserInfo();

loginUser = findUserByName(name);

if(name.equals("") || password.equals("")){

Toast.makeText(WebserviceActivity.this, "请输入用户名和密码", Toast.LENGTH_LONG).show();

System.out.println("请输入用户名和密码");

showloginRegDialog();

}else if(loginUser == null){

Toast.makeText(WebserviceActivity.this, "不存在此用户", Toast.LENGTH_LONG).show();

System.out.println("不存在此用户");

showloginRegDialog();

}else if(password.equals(loginUser.getPassword())){

Toast.makeText(WebserviceActivity.this, "登陆成功", Toast.LENGTH_LONG).show();

System.out.println("登陆成功");

Editor editor = sp.edit();

editor.putString("name", name);

editor.putString("password", password);

editor.putBoolean("first", false);

editor.commit();

}else{

Toast.makeText(WebserviceActivity.this, "密码错误", Toast.LENGTH_LONG).show();

System.out.println("密码错误");

showloginRegDialog();

}

}

})

.setNeutralButton("注册",new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

EditText etName = (EditText)loginRegView.findViewById(R.id.login_name);

EditText etPassword= (EditText) loginRegView.findViewById(R.id.login_password);

String name = etName.getText().toString();

String password = etPassword.getText().toString();

System.out.println("register name"+name+"password"+password);

UserInfo existUser = new UserInfo();

existUser = findUserByName(name);

UserInfo registerUser = new UserInfo();

registerUser.setName(name);

registerUser.setPassword(password);

if(name.equals("") || password.equals("")){

Toast.makeText(WebserviceActivity.this, "请输入用户名和密码", Toast.LENGTH_LONG).show();

System.out.println("请输入用户名和密码");

showloginRegDialog();

}else if(existUser != null){

Toast.makeText(WebserviceActivity.this, "该用户已注册,请换个名字注册", Toast.LENGTH_LONG).show();

System.out.println("该用户已注册,请换个名字注册");

showloginRegDialog();

}else if((registerUser!=null) &&(existUser==null)) {

saveUser(name,password);

Toast.makeText(WebserviceActivity.this, "注册成功,请登录", Toast.LENGTH_LONG).show();

System.out.println("注册成功,请登录");

showloginRegDialog();

}

}

})

.setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

}

});

loginRegDialog = builder.create();

loginRegDialog.show();

}

public UserInfo findUserByName(String name) {

// TODO Auto-generated method stub

SoapObject soapObject = new SoapObject(NAMESPACE, FIND_METHOD_NAME);

soapObject.addProperty("name", name);

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(

SoapEnvelope.VER11);// 版本

envelope.bodyOut = soapObject ;

envelope.dotNet = false ;

envelope.setOutputSoapObject(soapObject) ;

HttpTransportSE trans = new HttpTransportSE(URL) ;

trans.debug = true ; // 使用调试功能

try {

trans.call(SOAP_ACTION, envelope) ;

} catch (IOException e) {

e.printStackTrace();

} catch (XmlPullParserException e) {

e.printStackTrace();

}

SoapObject result = (SoapObject) envelope.bodyIn;

Gson gson = new Gson();

String json = result.getProperty(0).toString();

UserInfo userInfo = new UserInfo();

userInfo = gson.fromJson(json, UserInfo.class);

System.out.println("Web Service返回的数据是:"+result.getProperty(0));

System.out.println("Web Service返回的userInfo"+userInfo);

return userInfo;

}

public void saveUser(String name,String password) {

// TODO Auto-generated method stub

SoapObject soapObject = new SoapObject(NAMESPACE, SAVE_METHOD_NAME);

soapObject.addProperty("name", name);

soapObject.addProperty("password", password);

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(

SoapEnvelope.VER11);// 版本

envelope.bodyOut = soapObject ;

envelope.dotNet = false ;

envelope.setOutputSoapObject(soapObject) ;

HttpTransportSE trans = new HttpTransportSE(URL) ;

trans.debug = true ; // 使用调试功能

try {

trans.call(SOAP_ACTION, envelope) ;

} catch (IOException e) {

e.printStackTrace();

} catch (XmlPullParserException e) {

e.printStackTrace();

}

}

}

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值