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();
}
}
多条目MVP框架
猜你喜欢
转载自blog.csdn.net/weixin_43584998/article/details/89576871
今日推荐
周排行