XRecyclerView 刷新加载

来源:互联网 发布:java数据类型和运算符 编辑:程序博客网 时间:2024/06/05 16:30
    
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);    }}