多条目MVP框架

Contarct:
public interface ShowContarct {
    //model
    public interface ShowModel{
        public void getModelData(String keyword,ShowModel.ModelCallBack modelCallBack);

        public interface ModelCallBack{
            public void success(String naem);
            public void fail();
        }
    }
    //view
    public interface ShowView{
        public void getData(String data);
    }
    //presenter
    public interface ShowPresenter{
        public void show(String keyword);
        public void bind(ShowView showView);
        public void unbind();

    }
}
model:
public class ShowModel implements ShowContarct.ShowModel {

   public static final String ShowUrl="http://172.17.8.100/small/commodity/v1/findCommodityByKeyword";

    @Override
    public void getModelData(String keyword, final ModelCallBack modelCallBack) {
            Volley.getInstance().VolleyGet(ShowUrl+"?keyword="+URLEncoder.encode(keyword)+"&page="+1+"&count="+10,new Volley.VolleyCallBack(){

                @Override
                public void success(String names) {

                   modelCallBack.success(names);
                }

                @Override
                public void error(VolleyError error) {

                    modelCallBack.fail();
                }
            });
    }
}
view:
public class MainActivity extends AppCompatActivity implements ShowContarct.ShowView {

    ShowContarct.ShowPresenter showPresenter;
    public RecyclerView recyclerView;
    public TextView search;
    public EditText editText;
    public TextView textView;
    public ShowAdapter showAdapter;
    public MyLiu myLiu;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        recyclerView=findViewById(R.id.recy_view);
        search=findViewById(R.id.search);
        editText=findViewById(R.id.edit_text);
        myLiu=findViewById(R.id.my_liusi);

        GridLayoutManager gridLayoutManager=new GridLayoutManager(this,2);
        recyclerView.setLayoutManager(gridLayoutManager);

        showPresenter=new ShowPresenter();
        showPresenter.bind(this);
        showPresenter.show("板鞋");

        search.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                textView=new TextView(MainActivity.this);
                String sss=editText.getText().toString();
                textView.setText(sss+"  ");
                myLiu.addView(textView);

                textView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                    Toast.makeText(MainActivity.this,textView.getText().toString(),Toast.LENGTH_SHORT).show();

                        String aaa=editText.getText().toString();
                        showPresenter.show(aaa);

                    }
                });
            }
        });
    }

    @Override
    public void getData(String data) {

        Gson gson=new Gson();
        Product product=gson.fromJson(data,Product.class);
        final List<Product.ResultBean>result=product.getResult();
        showAdapter=new ShowAdapter(result,MainActivity.this);

        recyclerView.setAdapter(showAdapter);
        showAdapter.setAdaClick(new ShowAdapter.AdaClick() {
            @Override
            public void toAa(int position) {
                String masterPic = result.get(position).getMasterPic();
                String name = result.get(position).getCommodityName();
                String price = result.get(position).getPrice();
                Intent intent = new Intent(MainActivity.this, ShowActivity.class);
                intent.putExtra("cid",masterPic);
                intent.putExtra("name",name);
                intent.putExtra("price",price);
                startActivity(intent);
            }
        });

    }
}
presenter:
public class ShowPresenter implements ShowContarct.ShowPresenter {

    ShowContarct.ShowView showView;
    ShowModel showModel;


    public void show(String keyword) {
        showModel.getModelData(keyword,new ShowContarct.ShowModel.ModelCallBack() {
            @Override
            public void success(String naem) {
                showView.getData(naem);
            }

            @Override
            public void fail() {

            }

        });
    }

    @Override
    public void bind(final ShowContarct.ShowView showView) {
        this.showView=showView;
        showModel=new ShowModel();

    }

    @Override
    public void unbind() {

        if (showView != null) {
            showView=null;
        }
        if (showModel != null) {
            showModel=null;
        }
    System.gc();
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43584998/article/details/89576871
今日推荐