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

被折叠的 条评论
为什么被折叠?



