完成'我的'页面部细节问题和常见问题 页面

This commit is contained in:
md
2021-06-02 18:13:25 +08:00
parent 7101d0e35c
commit 33ad27a8ef
33 changed files with 425 additions and 274 deletions

View File

@@ -15,6 +15,7 @@ import com.navinfo.outdoor.fragment.ForgetPawFragment;
import com.navinfo.outdoor.fragment.GatheringFragment;
import com.navinfo.outdoor.fragment.GradeFragment;
import com.navinfo.outdoor.fragment.IssueFragment;
import com.navinfo.outdoor.fragment.IssueWebFragment;
import com.navinfo.outdoor.fragment.MapDownloadFragment;
import com.navinfo.outdoor.fragment.MineFragment;
import com.navinfo.outdoor.fragment.PrivilegeFragment;
@@ -69,6 +70,7 @@ public class FragmentManagement extends BaseActivity {
private AboutFragment aboutFragment;//我的-关于的fragment -23
private GatheringFragment gatheringFragment;//我的-用户资料-收款信息的fragment -24
private UserAttestationFragment userAttestationFragment;//我的-用户资料-实名认证的fragment -25
private IssueWebFragment issueWebFragment;//我的-常见问题-web的fragment -27
@Override
@@ -140,7 +142,9 @@ public class FragmentManagement extends BaseActivity {
if (userAttestationFragment!=null){//我的-用户资料-实名认证的fragment-25
fragmentTransaction.hide(userAttestationFragment);
}
if (issueWebFragment!=null){//我的-常见问题-web的fragment -27
fragmentTransaction.hide(issueWebFragment);
}
}
@@ -351,6 +355,14 @@ public class FragmentManagement extends BaseActivity {
fragmentTransaction.show(userAttestationFragment);
}
break;
case 27://我的-常见问题-web的fragment
if (issueWebFragment == null) {
issueWebFragment = new IssueWebFragment();
fragmentTransaction.add(R.id.frame_layout, issueWebFragment);
} else {
fragmentTransaction.show(issueWebFragment);
}
break;
}
fragmentTransaction.commit();
}
@@ -434,6 +446,9 @@ public class FragmentManagement extends BaseActivity {
case 25:
userAttestationFragment.onActivityResult(requestCode,resultCode,data);
break;
case 27:
issueWebFragment.onActivityResult(requestCode,resultCode,data);
break;
}
}

View File

@@ -2,6 +2,7 @@ package com.navinfo.outdoor.activity;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
@@ -16,7 +17,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
private android.widget.EditText etLoginName;
private android.widget.EditText etLoginPaw;
private TextView tvForgetPaw;
private TextView tvLogin;
private Button btnLogin;
@Override
protected int getLayout() {
@@ -36,8 +37,8 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
etLoginName = (EditText) findViewById(R.id.et_login_name);
etLoginPaw = (EditText) findViewById(R.id.et_login_paw);
tvForgetPaw = (TextView) findViewById(R.id.tv_forget_paw);
tvLogin = (TextView) findViewById(R.id.tv_login);
tvLogin.setOnClickListener(this::onClick);
btnLogin = (Button) findViewById(R.id.btn_login);
btnLogin.setOnClickListener(this::onClick);
tvRegister.setOnClickListener(this);
tvForgetPaw.setOnClickListener(this);
}
@@ -55,8 +56,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
forgetPaw.putExtra("tag", 6);
startActivity(forgetPaw);
break;
case R.id.tv_login:
case R.id.btn_login:
Intent intent = new Intent(this, HomeActivity.class);
startActivity(intent);
break;

View File

@@ -137,7 +137,7 @@ public class CapacityMeasureAdapter extends RecyclerView.Adapter<CapacityMeasure
//indext内容
private String getOptionIndex(int index) {
char A = (char) (65 + index);
return "选项" + A + ":";
return A + "";
}

View File

@@ -39,6 +39,14 @@ public class IssueProblemAdapter extends RecyclerView.Adapter<IssueProblemAdapte
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.tvIssue.setText(issueList.get(position).getTitle());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onIssueClick != null) {
onIssueClick.onClick(position);
}
}
});
}
@Override
@@ -54,12 +62,14 @@ public class IssueProblemAdapter extends RecyclerView.Adapter<IssueProblemAdapte
tvIssue = itemView.findViewById(R.id.tv_issue_title);
}
}
private interface OnClick{
void click(int position);
}
private OnClick click;
public void setClick(OnClick click) {
this.click = click;
public interface OnIssueClick {
void onClick(int pos);
}
private OnIssueClick onIssueClick;
public void setOnIssueClick(OnIssueClick onIssueClick) {
this.onIssueClick = onIssueClick;
}
}

View File

@@ -1,16 +1,19 @@
package com.navinfo.outdoor.fragment;
import android.content.Intent;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.jcodecraeer.xrecyclerview.ProgressStyle;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import com.navinfo.outdoor.R;
import com.navinfo.outdoor.activity.FragmentManagement;
import com.navinfo.outdoor.adapter.IssueProblemAdapter;
import com.navinfo.outdoor.base.BaseFragment;
import com.navinfo.outdoor.bean.TaskExplainInfo;
@@ -97,7 +100,14 @@ public class IssueFragment extends BaseFragment implements View.OnClickListener
}
});
issueProblemAdapter.setOnIssueClick(new IssueProblemAdapter.OnIssueClick() {
@Override
public void onClick(int pos) {
Intent iissueWeb = new Intent(getActivity(), FragmentManagement.class);
iissueWeb.putExtra("tag",27);
startActivity(iissueWeb);
}
});
}

View File

@@ -0,0 +1,66 @@
package com.navinfo.outdoor.fragment;
import android.os.Build;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.ImageView;
import com.navinfo.outdoor.R;
import com.navinfo.outdoor.base.BaseFragment;
/**
* 我的-常见问题-web
*/
public class IssueWebFragment extends BaseFragment implements View.OnClickListener {
private ImageView ivIssueWebFinish;
private String content = "<div>\n" +
"<h2>定义和用法</h2>\n" +
"\n" +
"<p>\n" +
"\t<img src=\"https://exp-picture.cdn.bcebos.com/560be432939c2cf72dff4caa452c5b1b1fde12e1.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1%2Fformat%2Cf_jpg%2Fquality%2Cq_80\">\n" +
"</p>\n" +
"\n" +
"<p style=\"color: red; margin-left: 20px\">&lt;style&gt; 标签用于为 HTML 文档定义样式信息。</p>\n" +
"\n" +
"<p style=\"background-color: lightblue; margin-left: 20px\">在 style 中,您可以规定在浏览器中如何呈现 HTML 文档。</p>\n" +
"\n" +
"<p style=\"font-family: verdana; margin-left: 20px\">type 属性是必需的,定义 style 元素的内容。唯一可能的值是 \"text/css\"。</p>\n" +
"\n" +
"<p style=\"font-size: 20px; margin-left: 20px\">style 元素位于 head 部分中。</p>\n" +
"</div>";
private WebView issueWebView;
@Override
protected int getLayout() {
return R.layout.fragment_issue_web;
}
@Override
protected void initView() {
super.initView();
ivIssueWebFinish = (ImageView) findViewById(R.id.iv_issueWeb_finish);
issueWebView = (WebView) findViewById(R.id.issue_webView);
ivIssueWebFinish.setOnClickListener(this::onClick);
issueWebView.getSettings().setBlockNetworkImage(false);
WebSettings settings = issueWebView.getSettings();
settings.setJavaScriptEnabled(true);
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
issueWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
settings.setBuiltInZoomControls(false);
content = content.replace("<img", "<img style='max-width: 100%'");
issueWebView.loadDataWithBaseURL(null, content, "text/html", "utf-8", null);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.iv_issueWeb_finish:
getActivity().finish();
break;
}
}
}

View File

@@ -1,19 +1,21 @@
package com.navinfo.outdoor.fragment;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import androidx.annotation.Nullable;
import android.widget.Toast;
import com.navinfo.outdoor.R;
import com.navinfo.outdoor.activity.FragmentManagement;
import com.navinfo.outdoor.base.BaseFragment;
import com.navinfo.outdoor.util.RegexUtil;
import static android.app.Activity.RESULT_OK;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 用户资料的fragment
@@ -23,6 +25,12 @@ public class UserDataFragment extends BaseFragment implements View.OnClickListen
private Button btnGathering;
private Button btnAttestation;
private ImageView ivUser;
private EditText etRegion;
private EditText etPhone;
private EditText etQq;
private EditText etMailbox;
public static Pattern compile = Pattern.compile("/^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,})$/");
private Button userSave;
@Override
protected int getLayout() {
@@ -43,8 +51,19 @@ public class UserDataFragment extends BaseFragment implements View.OnClickListen
btnAttestation.setOnClickListener(this::onClick);
btnGathering = findViewById(R.id.btn_gathering);
btnGathering.setOnClickListener(this::onClick);
etRegion = (EditText) findViewById(R.id.et_region);
etRegion.setOnClickListener(this::onClick);
etPhone = (EditText) findViewById(R.id.et_phone);
etPhone.setOnClickListener(this::onClick);
etQq = (EditText) findViewById(R.id.et_qq);
etQq.setOnClickListener(this::onClick);
etMailbox = (EditText) findViewById(R.id.et_mailbox);
etMailbox.setOnClickListener(this::onClick);
userSave = (Button) findViewById(R.id.user_save);
userSave.setOnClickListener(this::onClick);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
@@ -61,8 +80,64 @@ public class UserDataFragment extends BaseFragment implements View.OnClickListen
attestationIntent.putExtra("tag", 25);
startActivity(attestationIntent);
break;
case R.id.et_phone:
String phoneEt = etPhone.getText().toString().trim();
if (TextUtils.isEmpty(phoneEt)) {
Toast.makeText(getActivity(), "请输入手机号", Toast.LENGTH_SHORT).show();
return;
}
if (!RegexUtil.isPhone(phoneEt)) {
Toast.makeText(getActivity(), "手机格式有误", Toast.LENGTH_SHORT).show();
}
break;
case R.id.et_qq:
qq();
break;
case R.id.et_mailbox:
if (isEmail(etMailbox.getText().toString().trim()) && etMailbox.getText().toString().trim().length() <= 31) {
Toast.makeText(getActivity(), "邮箱验证成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getActivity(), "邮箱格式错误", Toast.LENGTH_SHORT).show();
}
break;
case R.id.user_save:
final String userphone = etPhone.getText().toString().trim();
final String userqq = etQq.getText().toString().trim();
final String usermailbox = etMailbox.getText().toString().trim();
if (!RegexUtil.isPhone(userphone)) {
Toast.makeText(getActivity(), "手机号输入错误", Toast.LENGTH_SHORT).show();
return;
}
if (userqq.length() > 11) {
Toast.makeText(getActivity(), "QQ号输入错误", Toast.LENGTH_SHORT).show();
return;
}
if (usermailbox.length() > 31) {
Toast.makeText(getActivity(), "邮箱输入错误", Toast.LENGTH_SHORT).show();
}
break;
}
}
private static String qq() {
String qq = "23412312";
String regex = "[1-9][0-9]{4,11}";
boolean flag = qq.matches(regex);
if (flag) {
System.out.println("输入正确!!");
} else {
System.out.println("输入正确!!");
}
return qq();
}
public static boolean isEmail(String email) {
if (null == email || "".equals(email)) return false;
Matcher m = compile.matcher(email);
return m.matches();
}
}

View File

@@ -0,0 +1,27 @@
package com.navinfo.outdoor.util;
import android.text.TextUtils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 手机号验证
*/
public class RegexUtil {
public static boolean isPhone(String name) {
if (TextUtils.isEmpty(name))return false;
Pattern p = Pattern.compile("^1[3,4,5,6,7,8,9]\\d{9}$");
Matcher m = p.matcher(name);
return m.matches();
}
public static boolean checkPassword(String password) {
if (TextUtils.isEmpty(password))return false;
//字母+数字。最少6位的正则表达式
Pattern p = Pattern.compile("(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,}");
Matcher m = p.matcher(password);
boolean isPassword = m.matches();
return isPassword;
}
}