From 3061ac4ee3799a8e5a46455691e35be309a2e7a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8B=87=E6=95=A2di=E7=89=9B=E7=89=9B?= <1018389619.@qq.com> Date: Sat, 21 May 2022 02:40:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E4=BA=86=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/testapp/RegisterActivity.java | 100 ++++++++++++++++++ .../example/testapp/Util/DownloadBook.java | 88 +++++++++++++++ .../example/testapp/Util/NetWorkHelper.java | 84 +++++++++++++++ .../example/testapp/Util/NetworkStates.java | 51 +++++++++ .../com/example/testapp/Util/UserHelper.java | 42 ++++++++ app/src/main/res/layout/activity_register.xml | 78 ++++++++++++++ 6 files changed, 443 insertions(+) create mode 100644 app/src/main/java/com/example/testapp/RegisterActivity.java create mode 100644 app/src/main/java/com/example/testapp/Util/DownloadBook.java create mode 100644 app/src/main/java/com/example/testapp/Util/NetWorkHelper.java create mode 100644 app/src/main/java/com/example/testapp/Util/NetworkStates.java create mode 100644 app/src/main/java/com/example/testapp/Util/UserHelper.java create mode 100644 app/src/main/res/layout/activity_register.xml diff --git a/app/src/main/java/com/example/testapp/RegisterActivity.java b/app/src/main/java/com/example/testapp/RegisterActivity.java new file mode 100644 index 0000000..7e4f935 --- /dev/null +++ b/app/src/main/java/com/example/testapp/RegisterActivity.java @@ -0,0 +1,100 @@ +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 diff --git a/app/src/main/java/com/example/testapp/Util/DownloadBook.java b/app/src/main/java/com/example/testapp/Util/DownloadBook.java new file mode 100644 index 0000000..b3d1b2f --- /dev/null +++ b/app/src/main/java/com/example/testapp/Util/DownloadBook.java @@ -0,0 +1,88 @@ +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); + } +} diff --git a/app/src/main/java/com/example/testapp/Util/NetWorkHelper.java b/app/src/main/java/com/example/testapp/Util/NetWorkHelper.java new file mode 100644 index 0000000..1bdca93 --- /dev/null +++ b/app/src/main/java/com/example/testapp/Util/NetWorkHelper.java @@ -0,0 +1,84 @@ +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); + } +} diff --git a/app/src/main/java/com/example/testapp/Util/NetworkStates.java b/app/src/main/java/com/example/testapp/Util/NetworkStates.java new file mode 100644 index 0000000..16d88f7 --- /dev/null +++ b/app/src/main/java/com/example/testapp/Util/NetworkStates.java @@ -0,0 +1,51 @@ +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; + } + +} diff --git a/app/src/main/java/com/example/testapp/Util/UserHelper.java b/app/src/main/java/com/example/testapp/Util/UserHelper.java new file mode 100644 index 0000000..37c683b --- /dev/null +++ b/app/src/main/java/com/example/testapp/Util/UserHelper.java @@ -0,0 +1,42 @@ +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 = LitePal.where("logged = ?",+ 1 +"").find(UserData.class); + Log.i("当前ID",String.valueOf(userData.get(0).getUserId())); + return userData.get(0).getUserId(); + } + + public static List getBookBtnStatus(){ + UserData userData = LitePal.where("UserId = ?",+ getUserId() +"").find(UserData.class).get(0); + String status = userData.getBookStatus(); + List Bts = new ArrayList<>(); + Log.i(TAG,"得到按钮状态"+String.valueOf(userData.getUserId())); + for (int i = 0;i + + + + + + + + + + +