利用接口实现登录注册

这是一个关于Android应用中实现登录和注册功能的示例。主要涉及`MainActivity`、`InfoActivity`和`RegisterActivity`三个类,使用了自定义的`OHHttpUtils`进行网络请求,通过`SPUtil`保存和获取用户信息。当登录成功后,用户信息会被传递到个人信息页面。

MainActivity

package com.gjl.rikao20180104;


import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;


import com.gjl.rikao20180104.bean.User;
import com.gjl.rikao20180104.data.SPUtil;
import com.gjl.rikao20180104.http.HttpUtils;
import com.gjl.rikao20180104.http.OHHttpUtils;
import com.google.gson.Gson;


import org.json.JSONException;
import org.json.JSONObject;


/**
 * 登录页面
 */
public class MainActivity extends AppCompatActivity implements View.OnClickListener {


private EditText tel;
private EditText password;
private static final String TAG = "MainActivity";


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


//初始化界面
initViews();
//初始化数据


//逻辑
String name = SPUtil.getString(MainActivity.this, "name");
String pass = SPUtil.getString(MainActivity.this, "password");
//登录
login(name, pass);


}


private void initViews() {
tel = findViewById(R.id.tel);
password = findViewById(R.id.password);
Button login = findViewById(R.id.login);
Button register = findViewById(R.id.register);
login.setOnClickListener(this);
register.setOnClickListener(this);
}


@Override
public void onClick(View v) {
switch (v.getId()) {
//登录逻辑
case R.id.login:
//取值
String mobile = tel.getText().toString().trim();
String pass = password.getText().toString().trim();
login(mobile, pass);
break;
//注册---跳转
case R.id.register:
startActivity(new Intent(MainActivity.this, RegisterActivity.class));
break;
}




}


//登录方法
private void login(final String mobile, final String pass) {
OHHttpUtils ohHttpUtils = new OHHttpUtils();
ohHttpUtils.setOnLoadListener(new OHHttpUtils.OnLoadListener() {
@Override
public void success(String json) {
Log.d(TAG, "success() returned: " + "json--" + json);
//使用原生josn
JSONObject jsonObject = null;
String code = null;
try {
jsonObject = new JSONObject(json);
code = jsonObject.getString("code");


if (code.equals("0")) {
Gson gson = new Gson();
User user = gson.fromJson(json, User.class);
//保存到本地
SPUtil.setString(MainActivity.this, "name", mobile);
SPUtil.setString(MainActivity.this, "password", pass);
//调到个人信息页面


int uid = user.getData().getUid();
//
Intent intent = new Intent(MainActivity.this, InfoActivity.class);
//如果要传对象,需要序列化。
//android  1.Serializable  2.Parcle
intent.putExtra("uid", uid);
startActivity(intent);
} else {
Toast.makeText(MainActivity.this, "失败" + jsonObject.getString("msg") + "请注册", Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}


@Override
public void error(String msg) {
Log.d(TAG, "error() returned: " + msg);
}
});
ohHttpUtils.OKHttpGet(HttpUtils.login_url + "?mobile=" + mobile + "&password=" + pass);
}
}

InfoActivity

package com.gjl.rikao20180104;


import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;


import com.gjl.rikao20180104.bean.UserInfo;
import com.gjl.rikao20180104.http.HttpUtils;
import com.gjl.rikao20180104.http.OHHttpUtils;
import com.google.gson.Gson;


public class InfoActivity extends AppCompatActivity implements View.OnClickListener{


private ImageView icon_image;
private TextView username;
private TextView nicheng;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_info);


initViews();


initData();


}


private void initData() {
Intent intent = getIntent();
int uid = intent.getIntExtra("uid", -1);
//请求你网络
OHHttpUtils ohHttpUtils = new OHHttpUtils();
ohHttpUtils.OKHttpGet(HttpUtils.info_url + "?uid=" + uid);
ohHttpUtils.setOnLoadListener(new OHHttpUtils.OnLoadListener() {
@Override
public void success(String json) {
Gson gson = new Gson();
UserInfo userInfo = gson.fromJson(json, UserInfo.class);
String nickname = (String) userInfo.getData().getNickname();//昵称
String name = userInfo.getData().getUsername();//用户名
//赋值
username.setText(name);
if (nickname == null) {
nicheng.setText("无昵称");
}


}


@Override
public void error(String msg) {


}
});
}


private void initViews() {
icon_image = findViewById(R.id.icon_imge);
username = findViewById(R.id.username);
nicheng = findViewById(R.id.nicheng);
Button exit = findViewById(R.id.exit);
exit.setOnClickListener(this);
}


@Override
public void onClick(View v) {
finish();//清空本地记录。
}
}

RegisterActivity

package com.gjl.rikao20180104;


import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;


import com.gjl.rikao20180104.bean.User;
import com.gjl.rikao20180104.http.HttpUtils;
import com.gjl.rikao20180104.http.OHHttpUtils;
import com.google.gson.Gson;


import org.json.JSONException;
import org.json.JSONObject;


public class RegisterActivity extends AppCompatActivity implements View.OnClickListener{


private EditText tel;
private EditText password;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);


initViews();


}


private void initViews() {
tel = findViewById(R.id.tel);
password = findViewById(R.id.password);
Button register = findViewById(R.id.register);
register.setOnClickListener(this);
}


@Override
public void onClick(View v) {
//注册
String mobile = tel.getText().toString().trim();
String pass = password.getText().toString().trim();
//
OHHttpUtils ohHttpUtils = new OHHttpUtils();
ohHttpUtils.setOnLoadListener(new OHHttpUtils.OnLoadListener() {
@Override
public void success(String json) {
//使用原生josn
JSONObject jsonObject = null;
String code = null;
try {
jsonObject = new JSONObject(json);
code = jsonObject.getString("code");


if (code.equals("0")) {
Gson gson = new Gson();
User user = gson.fromJson(json, User.class);
//保存到本地


//调到个人信息页面
//
Intent intent = new Intent(RegisterActivity.this, MainActivity.class);
//如果要传对象,需要序列化。
//android  1.Serializable  2.Parcle
startActivity(intent);
} else {
Toast.makeText(RegisterActivity.this, "注册失败", Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}


@Override
public void error(String msg) {
}
});
ohHttpUtils.OKHttpGet(HttpUtils.reg_url + "?mobile=" + mobile + "&password=" + pass);
}
}

HttpUtils

package com.gjl.rikao20180104.http;


/**
 * Created by Administrator on 2018/1/4 0004.
 * mobile 手机号 必填
 password 密码 必填




 mobile 手机号 必填
 password 密码 必填




 uid 用户id 必填
 */


public class HttpUtils {
public static String login_url = "http://120.27.23.105/user/login";
public static String reg_url = "http://120.27.23.105/user/reg";
public static String info_url = "http://120.27.23.105/user/getUserInfo";
}

OkHttpUtils

package com.gjl.rikao20180104.http;


import android.os.Handler;
import android.os.Message;


import com.squareup.okhttp.Call;
import com.squareup.okhttp.Callback;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.Response;


import java.io.IOException;


/**
 * Created by Administrator on 2018/1/4 0004.
 */


public class OHHttpUtils {


private OnLoadListener onLoadListener;
private MyHandler myHandler = new MyHandler();


public void OKHttpGet(String url) {
OkHttpClient okHttpClient = new OkHttpClient();
Request request = new Request.Builder()./service/https://blog.csdn.net/url(url).build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Request request, IOException e) {
Message message = myHandler.obtainMessage();
message.what = 0;
message.obj = "失败";
myHandler.sendMessage(message);


}


@Override
public void onResponse(Response response) throws IOException {
String json = response.body().string();
Message message = myHandler.obtainMessage();
message.what = 1;
message.obj = json;
myHandler.sendMessage(message);
}
});
}


public interface OnLoadListener {
void success(String json);


void error(String msg);
}


public void setOnLoadListener(OnLoadListener onLoadListener) {
this.onLoadListener = onLoadListener;
}


class MyHandler extends Handler {
@Override
public void handleMessage(Message msg) {
int w = msg.what;
if (w == 0) {
onLoadListener.error("失败");
}
if (w == 1) {
String json = (String) msg.obj;
onLoadListener.success(json);
}
}
}


}

SpUtil

package com.gjl.rikao20180104.data;


import android.annotation.SuppressLint;
import android.content.Context;
import android.content.SharedPreferences;


/**
 * Created by Administrator on 2018/1/4 0004.
 */


public class SPUtil {


public static void setString(Context context, String key, String value) {
SharedPreferences sp = context.getSharedPreferences("mysp", Context.MODE_PRIVATE);


SharedPreferences.Editor edit = sp.edit();
SharedPreferences.Editor editor = edit.putString(key, value);
editor.commit();
}


@SuppressLint("CommitPrefEdits")
public static void removeString(Context context) {
SharedPreferences sp = context.getSharedPreferences("mysp", Context.MODE_PRIVATE);
SharedPreferences.Editor edit = sp.edit();
edit.clear();
edit.commit();
}


//读取
public static String getString(Context context, String key) {
SharedPreferences sp = context.getSharedPreferences("mysp", Context.MODE_PRIVATE);
return sp.getString(key, "");
}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值