和另外一个mvp三层是同一个
这是搜索页面的展示以及搜索过后展示的搜索内容
这是activity里面需要的
@BindView(R.id.sou)
ImageView sou;
@BindView(R.id.sou_edit_sou)
EditText sou_edit_sou;
/*@BindView(R.id.liuShi)
LiuShi liuShi;*/
@BindView(R.id.customView)
CustomView liuShi;
private ViewGroup.MarginLayoutParams layoutParams;
private List<String> list;
private String string;
private TextView textView;
private SouAdapter souAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sou);
ButterKnife.bind(this);
sou_edit_sou.setCursorVisible(true);
sou_edit_sou.setFocusable(true);
sou_edit_sou.setFocusableInTouchMode(true);
initDat();//定义间距
}
private void initDat() {
layoutParams = new ViewGroup.MarginLayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.leftMargin =40;
layoutParams.rightMargin = 40;
list = new ArrayList<>();
}
@OnClick(R.id.sou)
public void onViewClicked(){
liuShi.removeAllViews();//将原有的视图先去除掉
string = sou_edit_sou.getText().toString();
list.add(string);
for (int i = list.size()-1;i > -1; i--) {
textView = new TextView(SouActivity.this);
textView.setText(list.get(i));
textView.setGravity(Gravity.CENTER);
textView.setLayoutParams(layoutParams);//将上面定义的间距添加进
liuShi.addView(textView);
}
if (string.length()>0){
//将搜索的值传给展示视图也就是传给ShowActivity
Intent intent = new Intent(SouActivity.this,ShowActivity.class);
intent.putExtra("sousuo",string);
startActivity(intent);
}else if (string==null){
Toast.makeText(this,"不能是空的",Toast.LENGTH_SHORT).show();
}
// Toast.makeText(this,"不能是空的:::"+string,Toast.LENGTH_SHORT).show();
}
//CustomView 继承于ViewGroup
private int mleftMargin = 20;
private int mtopMargin = 20;
public CustomView(Context context) {
this(context,null);
}
public CustomView(Context context, AttributeSet attrs) {
this(context, attrs,0);
}
public CustomView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
measureChildren(widthMeasureSpec, heightMeasureSpec);
int leftMargin = mleftMargin;
int topMargin = mtopMargin;
int sizeWidth = MeasureSpec.getSize(widthMeasureSpec);
int modeHeight = MeasureSpec.getMode(heightMeasureSpec);
switch (modeHeight){
case MeasureSpec.AT_MOST:
int measuredHeight = 0;
for (int j = 0;j < getChildCount();j++){
int measuredWidth = getChildAt(j).getMeasuredWidth();
measuredHeight = getChildAt(j).getMeasuredHeight();
if (leftMargin + measuredWidth + mleftMargin > getWidth()){
leftMargin = mleftMargin;
topMargin += measuredHeight + mtopMargin;
}
leftMargin += measuredWidth + mleftMargin;
}
topMargin += measuredHeight + mtopMargin;
break;
}
setMeasuredDimension(sizeWidth,topMargin);
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
int leftMargin = mleftMargin;
int topMargin = mtopMargin;
for (int j = 0; j < getChildCount();j++){
int measuredWidth = getChildAt(j).getMeasuredWidth();
int measuredHeight = getChildAt(j).getMeasuredHeight();
if (leftMargin + measuredWidth + mleftMargin > getWidth()){
leftMargin=mleftMargin;
topMargin += measuredHeight + mtopMargin;
getChildAt(j).layout(leftMargin,topMargin,leftMargin+measuredWidth,topMargin+measuredHeight);
}else {
getChildAt(j).layout(leftMargin,topMargin,leftMargin+measuredWidth,topMargin+measuredHeight);
}
leftMargin += measuredWidth+mleftMargin;
}
}
这是继承搜索的view
public class ShowActivity extends AppCompatActivity implements SouView{
@BindView(R.id.show_recyclerView)
RecyclerView showRecyclerView;
private SouPresenter souPresenter;
private String string;
private List<SouBean.DataBean> data;
private SouSuoAdapter souSuoAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show);
ButterKnife.bind(this);
souPresenter = new SouPresenter();
souPresenter.attachView(this);
string = getIntent().getStringExtra("sousuo");
souPresenter.SouloadDataFromNet(string, 1);
showRecyclerView.setLayoutManager(new LinearLayoutManager(ShowActivity.this, LinearLayoutManager.VERTICAL, false));
}
@Override
public void onSuccess(SouBean souBean) {
data = souBean.getData();
souSuoAdapter = new SouSuoAdapter(ShowActivity.this, data);
showRecyclerView.setAdapter(souSuoAdapter);
}
}
这是适配器里面的,获取我们需要展示的数据
public class SouSuoAdapter extends RecyclerView.Adapter<SouSuoAdapter.ViewHolder> {
private Context context;
private List<SouBean.DataBean> soulist;
public SouSuoAdapter(Context context, List<SouBean.DataBean> soulist) {
this.context = context;
this.soulist = soulist;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.showlayout,parent,false);
ViewHolder myViewHolder = new ViewHolder (view);
return myViewHolder;
}
@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
holder.textView_selanum.setText("销量:"+soulist.get(position).getSalenum());
holder.textView_title.setText(soulist.get(position).getTitle());
holder.textView_price.setText("价格:"+soulist.get(position).getPrice());
String images = soulist.get(position).getImages();
String[] split = images.split("\\|");
Uri parse = Uri.parse(split[0]);
AbstractDraweeController fresco =Fresco.newDraweeControllerBuilder()
.setUri(parse)
.build();
holder.simpleDraweeView.setController(fresco);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, InfoActivity.class);
int pid = soulist.get(position).getPid();
intent.putExtra("pid",pid);
context.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return soulist.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
TextView textView_title;
TextView textView_price;
TextView textView_selanum;
SimpleDraweeView simpleDraweeView;
public ViewHolder(View itemView) {
super(itemView);
textView_title = (TextView) itemView.findViewById(R.id.show_adapter_title);
textView_price = (TextView) itemView.findViewById(R.id.show_adapter_price);
textView_selanum = (TextView) itemView.findViewById(R.id.show_adapter_selanum);
simpleDraweeView = (SimpleDraweeView) itemView.findViewById(R.id.show_adapter_simple);
}
}
}
这是适配器的布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<com.facebook.drawee.view.SimpleDraweeView
android:layout_width="100dp"
android:layout_height="100dp"
android:id="@+id/show_adapter_simple"
android:layout_margin="10dp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/show_adapter_title"
android:text="ne"
android:textSize="20sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/show_adapter_price"
android:textSize="22sp"
android:layout_margin="3dp"
android:textColor="#f00"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/show_adapter_selanum"
android:textSize="22sp"
android:text="xl"
android:layout_margin="1dp"
/>
</LinearLayout>
</LinearLayout>
这是我自己写的一个bean
private String msg;
private String code;
private String page;
private List<DataBean> data;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getPage() {
return page;
}
public void setPage(String page) {
this.page = page;
}
public List<DataBean> getData() {
return data;
}
public void setData(List<DataBean> data) {
this.data = data;
}
public static class DataBean {
private double bargainPrice;
private String createtime;
private String detailUrl;
private String images;
private int itemtype;
private int pid;
private double price;
private int pscid;
private int salenum;
private int sellerid;
private String subhead;
private String title;
public double getBargainPrice() {
return bargainPrice;
}
public void setBargainPrice(double bargainPrice) {
this.bargainPrice = bargainPrice;
}
public String getCreatetime() {
return createtime;
}
public void setCreatetime(String createtime) {
this.createtime = createtime;
}
public String getDetailUrl() {
return detailUrl;
}
public void setDetailUrl(String detailUrl) {
this.detailUrl = detailUrl;
}
public String getImages() {
return images;
}
public void setImages(String images) {
this.images = images;
}
public int getItemtype() {
return itemtype;
}
public void setItemtype(int itemtype) {
this.itemtype = itemtype;
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getPscid() {
return pscid;
}
public void setPscid(int pscid) {
this.pscid = pscid;
}
public int getSalenum() {
return salenum;
}
public void setSalenum(int salenum) {
this.salenum = salenum;
}
public int getSellerid() {
return sellerid;
}
public void setSellerid(int sellerid) {
this.sellerid = sellerid;
}
public String getSubhead() {
return subhead;
}
public void setSubhead(String subhead) {
this.subhead = subhead;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
sou的Adapter
public class SouAdapter extends RecyclerView.Adapter<SouAdapter.ViewHolder>{
private Context context;
private List<SouBean.DataBean> sBean;
public SouAdapter(Context context, List<SouBean.DataBean> sBean) {
this.context = context;
this.sBean = sBean;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new ViewHolder(View.inflate(context, R.layout.sou_item,null));
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, final int position) {
holder.show_souAdapterTitle.setText(sBean.get(position).getTitle());
holder.show_souAdapterPrice.setText("¥"+String.valueOf(sBean.get(position).getPrice()+""));
Uri uri = Uri.parse(sBean.get(position).getImages().split("\\|")[0]);//图片的切割
AbstractDraweeController fresco = Fresco.newDraweeControllerBuilder()
.setUri(uri)
.build();
holder.show_adapterSimple.setController(fresco);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {//点击时将pid传到商品的详情去
Intent intent = new Intent(context, InfoActivity.class);
int pid = sBean.get(position).getPid();
intent.putExtra("pid",pid);
context.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return sBean.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
TextView show_souAdapterTitle;
TextView show_souAdapterPrice;
SimpleDraweeView show_adapterSimple;
public ViewHolder(View itemView) {
super(itemView);
show_souAdapterTitle = (TextView) itemView.findViewById(R.id.show_souAdapterTitle);
show_souAdapterPrice = (TextView) itemView.findViewById(R.id.show_souAdapterPrice);
show_adapterSimple = (SimpleDraweeView) itemView.findViewById(R.id.show_adapterSimple);
}
}
}