Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
勇敢di牛牛
EnglishLearningApp
提交
57d9171f
E
EnglishLearningApp
项目概览
勇敢di牛牛
/
EnglishLearningApp
通知
63
Star
1
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
EnglishLearningApp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
57d9171f
编写于
5月 21, 2022
作者:
勇敢di牛牛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
实现了注册功能
上级
25cf3793
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
443 addition
and
0 deletion
+443
-0
app/src/main/java/com/example/testapp/RegisterActivity.java
app/src/main/java/com/example/testapp/RegisterActivity.java
+100
-0
app/src/main/java/com/example/testapp/Util/DownloadBook.java
app/src/main/java/com/example/testapp/Util/DownloadBook.java
+88
-0
app/src/main/java/com/example/testapp/Util/NetWorkHelper.java
...src/main/java/com/example/testapp/Util/NetWorkHelper.java
+84
-0
app/src/main/java/com/example/testapp/Util/NetworkStates.java
...src/main/java/com/example/testapp/Util/NetworkStates.java
+51
-0
app/src/main/java/com/example/testapp/Util/UserHelper.java
app/src/main/java/com/example/testapp/Util/UserHelper.java
+42
-0
app/src/main/res/layout/activity_register.xml
app/src/main/res/layout/activity_register.xml
+78
-0
未找到文件。
app/src/main/java/com/example/testapp/RegisterActivity.java
0 → 100644
浏览文件 @
57d9171f
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
app/src/main/java/com/example/testapp/Util/DownloadBook.java
0 → 100644
浏览文件 @
57d9171f
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
);
}
}
app/src/main/java/com/example/testapp/Util/NetWorkHelper.java
0 → 100644
浏览文件 @
57d9171f
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
);
}
}
app/src/main/java/com/example/testapp/Util/NetworkStates.java
0 → 100644
浏览文件 @
57d9171f
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
;
}
}
app/src/main/java/com/example/testapp/Util/UserHelper.java
0 → 100644
浏览文件 @
57d9171f
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
();
}
}
app/src/main/res/layout/activity_register.xml
0 → 100644
浏览文件 @
57d9171f
<?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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录