public interface IView {
void getData(SuperClass superClass);
}
public class IModel implements Model {
SuperClass superClass = new SuperClass();
private OnFinish onFinish;
public interface OnFinish{
void onFinishListener(SuperClass superClass);
}
public void setOnFinish(OnFinish onFinish) {
this.onFinish = onFinish;
}
@Override
public void getUrl(String url, Map<String,String> mmap) {
OkHttp3Utils.doPost(url, mmap, new GsonObjectCallback<SuperClass>() {
@Override
public void onUi(SuperClass superClass) {
Log.d("myMain","==="+superClass.getMsg());
onFinish.onFinishListener(superClass);
}
@Override
public void onFailed(Call call, IOException e) {
}
});
}
}
public interface Model {
void getUrl(String url, Map<String,String > mapp);
}
public class press implements IModel.OnFinish {
private final IView userview;
private final IModel userModel;
public press(IView userview) {
this.userview = userview;
this.userModel = new IModel();
userModel.setOnFinish(this);
}
public void getUrl(String url, Map<String,String> mmap){
userModel.getUrl(url,mmap);
}
@Override
public void onFinishListener(SuperClass superClass) {
userview.getData(superClass);
}
}
//适配器、
public class MaDapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context context;
SuperClass superClass;
public MaDapter(Context context, SuperClass superClass) {
this.context = context;
this.superClass = superClass;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = View.inflate(context, R.layout.item, null);
MyRecyclerViewHolder viewHolder = new MyRecyclerViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
String[] split = superClass.getData().get(position).getIcon().split("\\|");
ImageLoader.getInstance().displayImage(split[0],((MyRecyclerViewHolder)holder).head);
((MyRecyclerViewHolder)holder).title.setText(superClass.getData().get(position).getName());
}
@Override
public int getItemCount() {
return superClass.getData().size();
}
class MyRecyclerViewHolder extends RecyclerView.ViewHolder{
ImageView head;
TextView title;
public MyRecyclerViewHolder(View itemView) {
super(itemView);
head = itemView.findViewById(R.id.head);
title = itemView.findViewById(R.id.title);
}
}
}
//Main方法实现下拉加载 下拉刷新
public class MainActivity extends AppCompatActivity implements IView {
private XRecyclerView mRecal;
private press press;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
mRecal = (XRecyclerView) findViewById(R.id.recal);
mRecal.setLayoutManager(new LinearLayoutManager(this));
//mRecal.setLayoutManager(new GridLayoutManager(this,4));
press = new press(this);
Map<String,String> mmap = new HashMap<>();
press.getUrl(API.HOST,mmap);
//加载刷新
mRecal.setPullRefreshEnabled(true);
mRecal.setLoadingMoreEnabled(true);
mRecal.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
Toast.makeText(MainActivity.this, "刷新", Toast.LENGTH_SHORT).show();
mRecal.refreshComplete();
}
@Override
public void onLoadMore() {
Toast.makeText(MainActivity.this, "加载更多", Toast.LENGTH_SHORT).show();
mRecal.loadMoreComplete();
}
});
}
@Override
public void getData(SuperClass superClass) {
MaDapter maDapter = new MaDapter(MainActivity.this, superClass);
mRecal.setAdapter(maDapter);
}
}