登录
public class MainActivity extends AppCompatActivity implements View.OnClickListener, UserView {
private SharedPreferences sp;
private EditText mUserName, mUserPass;
private UserPresenterIml userPresenterIml;
private CheckBox mCheckBox;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btn_register).setOnClickListener(this);
findViewById(R.id.btn_login).setOnClickListener(this);
mUserName = (EditText) findViewById(R.id.user_name);
mUserPass = (EditText) findViewById(R.id.user_pass);
mCheckBox = (CheckBox) findViewById(R.id.checkbox);
sp = getSharedPreferences("user", MODE_PRIVATE);
userPresenterIml = new UserPresenterIml(new UserModelIml(), this);
}
@Override
protected void onResume() {
super.onResume();
String userName = sp.getString("user_name", null);
String userPass = sp.getString("user_pass", null);
if (!TextUtils.isEmpty(userName)) {
mUserName.setText(userName);
}
if (!TextUtils.isEmpty(userPass)) {
mUserPass.setText(userPass);
mCheckBox.setChecked(true);
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_register://跳转到注册
startActivity(new Intent(MainActivity.this, RegisterActivity.class));
break;
case R.id.btn_login://点击登录
doLogin();
break;
}
}
//登录
private String userName,userPass;
private void doLogin() {
userName = mUserName.getText().toString().trim();
userPass = mUserPass.getText().toString().trim();
if (TextUtils.isEmpty(userName)) {
toast("请输入您的账号");
return;
}
if (TextUtils.isEmpty(userPass)) {
toast("请输入您的密码");
return;
}
//走登录
userPresenterIml.doLogin(userName, userPass);
}
private void toast(String msg) {
Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
}
@Override
public void success(String data) {
UserInFoBean bean = new Gson().fromJson(data, UserInFoBean.class);
String status = bean.getStatus();
if (status.equals("0000")){
toast("登录成功");
Intent intent = new Intent(this, LoginActivity.class);
startActivity(intent);
}else {
toast("登录失败");
}
boolean isCheckBox = mCheckBox.isChecked();
if (isCheckBox) {//保存
sp.edit().putString("user_name", userName)
.putString("user_pass", userPass).commit();
} else {//清空
sp.edit().putString("user_name", "")
.putString("user_pass", "").commit();
}
}
@Override
public void fail(String error) {
toast(error);
}
}
注册
public class RegisterActivity extends AppCompatActivity implements View.OnClickListener, UserView {
private EditText mUserName;
private EditText mUserPass;
private EditText mUserPass2;
private UserPresenterIml userPresenterIml;
private SharedPreferences sp;
private String userName;
private String userPass;
private String userPass2;
private UserBean bean;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
findViewById(R.id.btn_register).setOnClickListener(this);
findViewById(R.id.tv_login).setOnClickListener(this);
mUserName = findViewById(R.id.user_name);
mUserPass = findViewById(R.id.user_pass);
mUserPass2 = findViewById(R.id.user_pass2);
userPresenterIml = new UserPresenterIml(new UserModelIml(), this);
sp = getSharedPreferences("user", MODE_PRIVATE);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_register://点击注册
doRegister();
break;
case R.id.tv_login://已有账号,立即登录
finish();
break;
}
}
//注册
private void doRegister() {
userName = mUserName.getText().toString().trim();
userPass = mUserPass.getText().toString().trim();
userPass2 = mUserPass2.getText().toString().trim();
if (TextUtils.isEmpty(userName)) {
toast("请输入您的账号");
return;
}
if (TextUtils.isEmpty(userPass)) {
toast("请输入您的密码");
return;
}
if (TextUtils.isEmpty(userPass2)) {
toast("请确认您的密码");
return;
}
if (!userPass.equals(userPass2)) {
toast("请检查您的两次密码是否一致");
return;
}
//走注册
userPresenterIml.doRegister(userName, userPass);
}
private void toast(String msg) {
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
}
@Override
public void success(String data) {
bean = new Gson().fromJson(data, UserBean.class);
toast(bean.getMessage());
sp.edit().putString("user_name", userName).commit();
if (bean.getStatus().equals("0000")) {
finish();
}
}
@Override
public void fail(String error) {
toast(error);
}
@Override
protected void onDestroy() {
super.onDestroy();
userPresenterIml.destory();
}
}
xrecycleview展示
public class Frag01 extends Fragment implements UserView {
private XRecyclerView xlist_view;
private LinearLayoutManager linearLayoutManager;
private NewsAdapter mNewsAdapter;
private UserPresenterIml userPresenterIml;
private String url="http://172.17.8.100/movieApi/movie/v1/findHotMovieList?page=1&count=5";
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag01, container, false);
return view;
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
//初始化
xlist_view = view.findViewById(R.id.list_view);
//设置布局适配器
linearLayoutManager = new LinearLayoutManager(getContext());
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
xlist_view.setLayoutManager(linearLayoutManager);
//设置适配器
mNewsAdapter=new NewsAdapter(getActivity());
xlist_view.setAdapter(mNewsAdapter);
//开始上拉加载
xlist_view.setLoadingMoreEnabled(true);
xlist_view.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
}
@Override
public void onLoadMore() {
}
});
userPresenterIml = new UserPresenterIml(new UserModelIml(), this);
//获取数据
userPresenterIml.showGet(url);
}
@Override
public void success(String data) {
NewsBean bean = new Gson().fromJson(data, NewsBean.class);
mNewsAdapter.setList(bean.getResult());
xlist_view.refreshComplete();// 关闭下拉
xlist_view.loadMoreComplete();// 关闭上拉
}
@Override
public void fail(String error) {
xlist_view.refreshComplete();// 关闭下拉
xlist_view.loadMoreComplete();// 关闭上拉
}
//销毁
@Override
public void onDestroy() {
super.onDestroy();
xlist_view.destroy();
}
}
适配器
public class NewsAdapter extends RecyclerView.Adapter<NewsAdapter.MyViewHolder> {
private Context context;
private List<NewsBean.ResultBean> list=new ArrayList<>();
public NewsAdapter(Context context) {
this.context = context;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = View.inflate(context, R.layout.item_list, null);
MyViewHolder myViewHolder = new MyViewHolder(view);
return myViewHolder;
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {
myViewHolder.num.setText(list.get(i).getSummary());
myViewHolder.title.setText(list.get(i).getName());
Glide.with(context).load(list.get(i).getImageUrl()).into(myViewHolder.imageView);
}
@Override
public int getItemCount() {
return list.size();
}
public void setList(List<NewsBean.ResultBean> list) {
this.list = list;
notifyDataSetChanged();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
TextView title,num;
ImageView imageView;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
imageView=itemView.findViewById(R.id.image);
title=itemView.findViewById(R.id.tv_name);
num=itemView.findViewById(R.id.tv_num);
}
}
}