创建接口
package com.exam.mvp.core;
import com.exam.mvp.bean.User;
import com.exam.mvp.bean.User2;
public interface BaseLogin {
void loginSuccess(User user);
void loginError(String msg);
void registerSuccess(User2 user);
void registerError(User2 user);
}
package com.exam.mvp.presenter;
import android.os.AsyncTask;
import android.util.Log;
import com.exam.mvp.bean.DataBin;
import com.exam.mvp.core.BaseData;
import com.exam.mvp.model.Utils;
import com.exam.mvp.bean.User;
import com.exam.mvp.bean.User2;
import com.exam.mvp.core.BaseLogin;
import com.google.gson.Gson;
public class MyPresenter {
private BaseLogin baseLogin;
private BaseData baseData;
public void bindBaseLogin(BaseLogin baseLogin){
this.baseLogin = baseLogin;
}
public void bindBaseData(BaseData baseData){
this.baseData = baseData;
}
public void qingqiu(String name,String pass){
new MyAsyncTask().execute(name,pass);
}
public void reg(String name,String pass){
new MyAsyncTaskReg().execute(name,pass);
}
public void getdata(String basurl){
new MyAsyncTaskData().execute(basurl);
}
class MyAsyncTask extends AsyncTask<String,Void,String> {
@Override
protected String doInBackground(String... strings) {
String name = Utils.getName(strings[0], strings[1]);
return name;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
User user = gson.fromJson(s, User.class);
String code = user.getCode();
int i = Integer.parseInt(code);
if (i==0){
// Toast.makeText(MainActivity.this,user.getMsg(),Toast.LENGTH_SHORT).show();
baseLogin.loginSuccess(user);
Log.e("-------",user.getMsg());
}else {
// Toast.makeText(MainActivity.this,user.getMsg(),Toast.LENGTH_SHORT).show();
Log.e("-------",user.getMsg());
baseLogin.loginError(user.getMsg());
}
}
}
class MyAsyncTaskReg extends AsyncTask<String,Void,String> {
@Override
protected String doInBackground(String... strings) {
String name = Utils.getRegister(strings[0], strings[1]);
return name;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
User2 user = gson.fromJson(s, User2.class);
String code = user.getCode();
int i = Integer.parseInt(code);
if (i==0){
// Toast.makeText(MainActivity.this,user.getMsg(),Toast.LENGTH_SHORT).show();
baseLogin.registerSuccess(user);
Log.e("-------",user.getMsg());
}else {
// Toast.makeText(MainActivity.this,user.getMsg(),Toast.LENGTH_SHORT).show();
Log.e("-------",user.getMsg());
baseLogin.registerError(user);
}
}
}
class MyAsyncTaskData extends AsyncTask<String,Void,String> {
@Override
protected String doInBackground(String... strings) {
String s = Utils.getString(strings[0]);
return s;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
DataBin dataBin = gson.fromJson(s, DataBin.class);
Log.e("----------",dataBin.getMsg());
baseData.dataBase(dataBin);
}
}
}
package com.exam.mvp.model;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class Utils {
public static String getString(String baseurl){
try {
URL url = new URL(baseurl);
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
int code = httpURLConnection.getResponseCode();
if(code==200){
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String temp = "";
StringBuilder builder = new StringBuilder();
while ((temp = reader.readLine())!= null){
builder.append(temp);
}
return builder.toString();
}
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
public static String getName(String name,String pass){
String Strurl = "http://www.zhaoapi.cn/user/login?mobile="+name+"&password="+pass;
try {
URL url = new URL(Strurl);
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
int code = httpURLConnection.getResponseCode();
if(code==200){
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String temp = "";
StringBuilder builder = new StringBuilder();
while ((temp = reader.readLine())!= null){
builder.append(temp);
}
return builder.toString();
}
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
public static String getRegister(String name,String pass){
String Strurl = "http://www.zhaoapi.cn/user/reg?mobile="+name+"&password="+pass;
try {
URL url = new URL(Strurl);
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
int code = httpURLConnection.getResponseCode();
if(code==200){
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String temp = "";
StringBuilder builder = new StringBuilder();
while ((temp = reader.readLine())!= null){
builder.append(temp);
}
return builder.toString();
}
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
}
package com.exam.adapter;
import android.content.Context;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.exam.bean.Data;
import com.exam.core.OnItemClickListener;
import com.exam.shop.R;
import com.exam.shop.WebActivity;
import java.util.ArrayList;
import java.util.List;
/**
* @author dingtao
* @date 2018/12/11 10:39
* qq:1940870847
*/
public class MyRecyclerAdapter extends RecyclerView.Adapter {
public final static int LINEAR_TYPE = 0;//线性
public final static int GRID_TYPE = 1;//网格
private int viewType = LINEAR_TYPE;
private List<Data> mList = new ArrayList<Data>();
private Context context;
//点击事件
private OnItemClickListener mOnItemClickListener;
//点击事件
public void setOnItemClickListener(OnItemClickListener mOnItemClickListener){
this.mOnItemClickListener = mOnItemClickListener;
}
//private ArrayList<NetData.DataBean> list = new ArrayList<>();
public MyRecyclerAdapter(Context context) {
this.context = context;
}
public void addList(List<Data> data){
mList.addAll(data);
}
public void clearList(){
mList.clear();
notifyDataSetChanged();
}
public void setViewType(int viewType) {
this.viewType = viewType;
}
@Override
public int getItemViewType(int position) {
return viewType;
}
/**
* hodler view 两种加载方式
* ①:LayoutInflater.from(context).inflate(id,viewGroup,false);
* ②:View.inflate(context,id,null)
*/
//设置item的视图类型
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View view ;
if (viewType==LINEAR_TYPE){
view = View.inflate(context,R.layout.item2,null);
}else {
view = View.inflate(context,R.layout.item1,null);
}
MyHodler myHodler = new MyHodler(view);
return myHodler;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder,final int i) {
MyHodler myHodler = new MyHodler(viewHolder.itemView);
String thumbnail_pic_s = mList.get(i).getImages();
String[] split = thumbnail_pic_s.split("\\|");
Glide.with(context).load(split[0]).into(myHodler.imageView);
String title1 =mList.get(i).getTitle();
myHodler.title.setText(title1);
if(mOnItemClickListener != null) {
//为ItemView设置监听器
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//int layoutPosition = myHodler.getLayoutPosition();
mOnItemClickListener.onItemClick(v);
/*mList.remove(i);
// //删除动画
notifyItemRemoved(i);*/
Intent intent = new Intent(context,WebActivity.class);
// intent.putExtra("url",)
notifyDataSetChanged();
}
});
}
}
@Override
public int getItemCount() {
return mList.size();
}
class MyHodler extends RecyclerView.ViewHolder {
private TextView title;
private ImageView imageView;
public MyHodler(View itemView) {
super(itemView);
title = itemView.findViewById(R.id.item_text);
imageView = itemView.findViewById(R.id.item_image);
}
}
}
package com.exam.shop;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import com.exam.adapter.MyRecyclerAdapter;
import com.exam.bean.Data;
import com.exam.core.BaseNetData;
import com.exam.core.OnItemClickListener;
import com.exam.presenter.Mypresenter;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity implements BaseNetData,View.OnClickListener,XRecyclerView.LoadingListener {
private XRecyclerView recyclerView;
private Mypresenter mypresenter;
private EditText text;
private MyRecyclerAdapter adapter;
private LinearLayoutManager linerlayoutManager;
private GridLayoutManager gridLayoutManager;
private boolean isGrid = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.main_recyclerview);
findViewById(R.id.main_image).setOnClickListener(this);
findViewById(R.id.main_but).setOnClickListener(this);
gridLayoutManager = new GridLayoutManager(this, 2,
GridLayoutManager.VERTICAL, false);
linerlayoutManager = new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false);
recyclerView.setLayoutManager(linerlayoutManager);
adapter = new MyRecyclerAdapter(this);
recyclerView.setAdapter(adapter);
adapter.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(View view) {
}
});
}
private void initdata() {
text = findViewById(R.id.main_text);
String string = text.getText().toString();
mypresenter = new Mypresenter((BaseNetData) this);
mypresenter.getNetData(string);
}
//数据成功回调方法
@Override
public void Success(ArrayList<Data> data) {
Log.e("---------",data.size()+"");
adapter.addList(data);
adapter.notifyDataSetChanged();
}
//主页面点击事件
@Override
public void onClick(View v) {
if (v.getId()==R.id.main_image){
initdata();
}else if (v.getId() == R.id.main_but){
if(isGrid){
isGrid = false;
adapter.setViewType(MyRecyclerAdapter.GRID_TYPE);
recyclerView.setLayoutManager(gridLayoutManager);
}else {
isGrid = true;
adapter.setViewType(MyRecyclerAdapter.LINEAR_TYPE);
recyclerView.setLayoutManager(linerlayoutManager);
}
}
}
//下拉
@Override
public void onRefresh() {
}
//上拉
@Override
public void onLoadMore() {
}
}