提交 3061ac4e 编写于 作者: 勇敢di牛牛's avatar 勇敢di牛牛

实现了注册功能

上级 25cf3793
package com.example.testapp;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.example.testapp.Adapter.BookListAdapter;
import com.example.testapp.Util.NetWorkHelper;
import com.example.testapp.config.ConstantData;
import org.json.JSONException;
import org.json.JSONObject;
public class RegisterActivity extends AppCompatActivity {
private static String TAG = "RegisterActivity";
private EditText emEdt;
private EditText password1Edt;
private EditText password2Edt;
private Button regBtn;
private EditText nameEdt;
private JSONObject json;
public Handler handler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(@NonNull Message msg) {
switch (msg.what) {
case NetWorkHelper.SUCCESS:
Log.i(TAG, "handleMessage: "+NetWorkHelper.SUCCESS);
Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show();
break;
case NetWorkHelper.FAIL:
Log.i(TAG, "handleMessage: "+NetWorkHelper.FAIL);
break;
case NetWorkHelper.REPEAT:
Log.i(TAG, "handleMessage: "+NetWorkHelper.REPEAT);
Toast.makeText(RegisterActivity.this, "用户名已经存在", Toast.LENGTH_SHORT).show();
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
emEdt = findViewById(R.id.edt_email);
password1Edt = findViewById(R.id.edt_password1);
password2Edt = findViewById(R.id.edt_password2);
regBtn = findViewById(R.id.bt_register);
nameEdt = findViewById(R.id.new_name);
regBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (ifSame()) {
getFromJson(); //获取注册表单
postUserdata(); // 提交表单数据
}
}
});
}
private void getFromJson(){
json = new JSONObject();
try {
json.put("email",String.valueOf(emEdt.getText()));
json.put("password",String.valueOf(password2Edt.getText()));
json.put("username",String.valueOf(nameEdt.getText()));
} catch (JSONException e) {
e.printStackTrace();
}
}
private void postUserdata() {
String url = ConstantData.REGISTER_URL;
Log.i(TAG, "postUserdata: "+String.valueOf(json));
NetWorkHelper.PostData(url,json,handler);
}
private Boolean ifSame() {
if (String.valueOf(password2Edt.getText()).equals(String.valueOf(password1Edt.getText()))){
return true;
} else{
Log.i(TAG, "ifSame: String.valueOf(password2Edt.getText()):"+String.valueOf(password2Edt.getText()));
Log.i(TAG, "ifSame: String.valueOf(password1Edt.getText()):"+String.valueOf(password1Edt.getText()));
Toast.makeText(this, "请确保两次输入的密码一致", Toast.LENGTH_SHORT).show();
return false;
}
}
}
\ No newline at end of file
package com.example.testapp.Util;
import android.app.ProgressDialog;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.util.Log;
import android.widget.Button;
import androidx.annotation.NonNull;
import androidx.core.app.ComponentActivity;
import com.example.testapp.Adapter.BookListAdapter;
import com.example.testapp.WordActivity;
import com.example.testapp.WordBook;
import java.io.IOException;
import java.text.BreakIterator;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class DownloadBook {
public static String TAG = "DownloadBook";
private static final int FINISH = 1;
private static final int DOWN_DONE = 2;
private static Button button;
public static Handler handler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(@NonNull Message msg) {
switch (msg.what) {
case FINISH:
WordBook.removeProgressDialogMessage();
button.setText("开始学习");
BookListAdapter.IntentSetPlanActivity();
break;
case DOWN_DONE:
WordBook.setProgressDialogMessage();
break;
}
}
};
public static void DownJson(String url, Button btn){
// 下载json并保存到数据库
button = btn;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// 开启线程分析数据
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
Log.i(TAG, "开始网络线程");
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(url)
.build();
Response response = client.newCall(request).execute();
Message message = new Message();
String resStr = response.body().string();
message.what = DOWN_DONE;
handler.sendMessage(message);
Log.i(TAG, "下载成功");
String jsonStr = resStr.replace("\n{\"wordRank\"", ",{\"wordRank\"");
String json = "[" + jsonStr.substring(0) + "]"; ////格式化为标准json数组格式
Log.i(TAG, "开始解析json到数据库中>>>>");
JsonHelper.analyseDefaultAndSave(json);
} catch (IOException e) {
e.printStackTrace();
}
Message message = new Message();
message.what = FINISH;
handler.sendMessage(message);
Log.i(TAG, "json文件解析完成!");
}
});
thread.start();
}
}, 500);
}
}
package com.example.testapp.Util;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.Button;
import com.example.testapp.RegisterActivity;
import org.json.JSONObject;
import java.io.IOException;
import okhttp3.FormBody;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
public class NetWorkHelper {
private static String TAG = "NetWorkHelper";
public static final int SUCCESS = 1;
public static final int FAIL = 2;
public static final int REPEAT = -1;
public static void PostData(String url , JSONObject json, Handler handle){
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// 开启线程分析数据
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
Log.i(TAG, "开始网络线程");
OkHttpClient client = new OkHttpClient();
RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8"), String.valueOf(json));
Log.i(TAG, "run: "+requestBody);
Request request = new Request.Builder()
.url(url)
.post(requestBody)
.build();
Response response = client.newCall(request).execute();
String resStr = response.body().string();
if (resStr.equals("1")){
sendSuccessMessage(handle);
}else if(resStr.equals("0")){
sendRepeatMessage(handle);
}
;
Log.i(TAG, "获取成功 response:"+ resStr);
} catch (IOException e) {
e.printStackTrace();
sendFailMessage(handle);
}
}
});
thread.start();
}
}, 500);
}
private static void sendRepeatMessage(Handler handler) {
Message message = new Message();
message.what = REPEAT;
handler.sendMessage(message);
}
private static void sendSuccessMessage(Handler handler){
Message message = new Message();
message.what = SUCCESS;
handler.sendMessage(message);
}
private static void sendFailMessage(Handler handler){
Message message = new Message();
message.what = FAIL;
handler.sendMessage(message);
}
}
package com.example.testapp.Util;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.NetworkInfo.State;
import android.util.Log;
public class NetworkStates {
public static int Net_State_Wifi = 2; //wifi
public static int Net_State_Mobile = 1; //数据
public static int Net_No = 0; //没网
public static int Net_others = 3;
public static int Get_Net_State_Fail = -1;
public static int Net_State ;
public static String TAG = "NetworkStates";
public static void isNetworkConnected(Context context) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
Log.i(TAG, String.format("isNetworkConnected: %s",mNetworkInfo));
if (null == mNetworkInfo){
Net_State = Get_Net_State_Fail;
return;
}
if (mNetworkInfo.getType() == ConnectivityManager.TYPE_MOBILE){
Log.i(TAG, String.format("isNetworkConnected: %s",mNetworkInfo.getType()));
Net_State = Net_State_Mobile;
return;
}
if (mNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI){
Log.i(TAG, String.format("isNetworkConnected: %s",mNetworkInfo.isConnected()));
Net_State = Net_State_Wifi;
return;
}
if (!mNetworkInfo.isConnected()){
Log.i(TAG, String.format("isNetworkConnected: %s",mNetworkInfo.isConnected()));
Net_State = Net_No;
}else{
Log.i(TAG, String.format("isNetworkConnected: %s",mNetworkInfo.isConnected()));
Net_State = Net_others;
}
}
public static int getNetState(Context context){
isNetworkConnected(context);
return Net_State;
}
}
package com.example.testapp.Util;
import android.util.Log;
import com.example.testapp.database.UserData;
import org.litepal.LitePal;
import java.util.ArrayList;
import java.util.List;
public class UserHelper {
public static String TAG = "UserHelper";
public static int getUserId() {
List<UserData> userData = LitePal.where("logged = ?",+ 1 +"").find(UserData.class);
Log.i("当前ID",String.valueOf(userData.get(0).getUserId()));
return userData.get(0).getUserId();
}
public static List<String> getBookBtnStatus(){
UserData userData = LitePal.where("UserId = ?",+ getUserId() +"").find(UserData.class).get(0);
String status = userData.getBookStatus();
List<String> Bts = new ArrayList<>();
Log.i(TAG,"得到按钮状态"+String.valueOf(userData.getUserId()));
for (int i = 0;i <status.length();i++){
Log.i(TAG, "getBookBtnStatus: 第"+i+"个按钮是"+String.valueOf(status.charAt(i)));
Bts.add(String.valueOf(status.charAt(i)));
}
return Bts;
}
public static void setBookBtnStatus(int i, String str){
UserData userData = LitePal.where("UserId = ?",+ getUserId() +"").find(UserData.class).get(0);
String status = userData.getBookStatus();
StringBuffer buf = new StringBuffer(status);
buf.replace(i,i+1,str);
Log.i(TAG, "setBookBtnStatus: 替换后的,按钮状态表:"+buf.toString());
userData.setBookStatus(buf.toString());
userData.save();
}
}
<?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"
android:background="@color/white"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:id="@+id/edt_email"
android:layout_width="@dimen/btn_edit_width"
android:layout_height="@dimen/btn_edit_height"
android:layout_centerHorizontal="true"
android:layout_marginTop="120dp"
android:background="@drawable/edit_text"
android:hint="@string/email"
android:inputType="textEmailAddress"
android:shadowColor="@color/edit_shadow"
android:textColor="@color/black"
android:textColorHint="@color/edit_hint" />
<EditText
android:id="@+id/new_name"
android:layout_width="@dimen/btn_edit_width"
android:layout_height="@dimen/btn_edit_height"
android:layout_centerHorizontal="true"
android:layout_marginStart="22dp"
android:layout_marginTop="36dp"
android:layout_marginEnd="28dp"
android:background="@drawable/edit_text"
android:hint="请输入用户名"
android:inputType="text"
android:shadowColor="@color/edit_shadow"
android:textColor="@color/black"
android:textColorHint="@color/edit_hint" />
<EditText
android:id="@+id/edt_password1"
android:layout_width="@dimen/btn_edit_width"
android:layout_height="@dimen/btn_edit_height"
android:layout_below="@+id/edt_email"
android:layout_centerHorizontal="true"
android:layout_marginTop="22dp"
android:background="@drawable/edit_text"
android:hint="@string/input_password"
android:inputType="textPassword"
android:shadowColor="@color/edit_shadow"
android:textColor="@color/black"
android:textColorHint="@color/edit_hint" />
<EditText
android:id="@+id/edt_password2"
android:layout_width="@dimen/btn_edit_width"
android:layout_height="@dimen/btn_edit_height"
android:layout_below="@+id/edt_password1"
android:layout_centerHorizontal="true"
android:layout_marginTop="22dp"
android:background="@drawable/edit_text"
android:hint="@string/sure_password"
android:inputType="textPassword"
android:shadowColor="@color/edit_shadow"
android:textColor="@color/black"
android:textColorHint="@color/edit_hint" />
<Button
android:id="@+id/bt_register"
android:layout_width="@dimen/btn_login_width"
android:layout_height="@dimen/btn_login_height"
android:layout_below="@+id/edt_password2"
android:layout_centerHorizontal="true"
android:layout_marginTop="40dp"
android:background="@drawable/btn_white"
android:text="@string/sure_register"
android:textColor="@color/btn_blue"
android:textSize="@dimen/btn_login_text_size" />
</RelativeLayout>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册