package com.bawei.monthone.fragment;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.bawei.monthone.R;
import com.bawei.monthone.activity.DetailedActivity;
import com.bawei.monthone.adapter.SearchAdapter;
import com.bawei.monthone.base.BaseFragment;
import com.bawei.monthone.bean.KeyWordBean;
import com.bawei.monthone.contract.SearchContract;
import com.bawei.monthone.presenter.SearchPresenter;
import com.bawei.monthone.view.Search;
import java.util.List;
/**
*/
public class HomeFragment extends BaseFragment implements SearchContract.SearchView {
private Search search;
private TextView tv_se;
private EditText et_search;
private SearchPresenter searchPresenter;
private RecyclerView rv;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.home_frag, container, false);
//初始化控件
search = view.findViewById(R.id.search);
et_search = view.findViewById(R.id.et_search);
tv_se = view.findViewById(R.id.tv_search);
rv = view.findViewById(R.id.search_item);
GridLayoutManager gridLayoutManager = new GridLayoutManager(getContext(), 2);
rv.setLayoutManager(gridLayoutManager);
isPrepared = true;
searchPresenter = new SearchPresenter();
searchPresenter.attachView(this);
onLoad();
return view;
}
@Override
protected void onLoad() {
//加载数据
if (!isPrepared || !isVisible) {
return;
}
tv_se.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int page=1;
int count=10;
String text = et_search.getText().toString().trim();
searchPresenter.requestModel(text);
}
});
}
@Override
public void searchData(List<KeyWordBean.ResultBean> result) {
SearchAdapter searchAdapter = new SearchAdapter(getContext(), result);
rv.setAdapter(searchAdapter);
searchAdapter.setItemClickListener(new SearchAdapter.onItemClickListener() {
@Override
public void onCklic(int i) {
Intent intent = new Intent(getContext(), DetailedActivity.class);
intent.putExtra("id", "" + i);
startActivity(intent);
}
});
}
}
//搜索的适配器
package com.bawei.monthone.adapter;
import android.content.Context;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.bawei.monthone.R;
import com.bawei.monthone.bean.KeyWordBean;
import com.facebook.drawee.view.SimpleDraweeView;
import java.util.List;
/**
*/
public class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.MyViewHolder>{
private Context context;
private List<KeyWordBean.ResultBean> result;
private int commodityId;
public SearchAdapter(Context context, List<KeyWordBean.ResultBean> result) {
this.context = context;
this.result = result;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(context).inflate(R.layout.search_item, viewGroup, false);
MyViewHolder myViewHolder = new MyViewHolder(view);
return myViewHolder;
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {
String masterPic = result.get(i).getMasterPic();
String commodityName = result.get(i).getCommodityName();
commodityId = result.get(i).getCommodityId();
int price = result.get(i).getPrice();
myViewHolder.s_title.setText(commodityName);
myViewHolder.s_price.setText("¥:"+price);
Uri uri = Uri.parse(masterPic);
myViewHolder.img.setImageURI(uri);
myViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
itemClickListener.onCklic(commodityId);
}
});
}
@Override
public int getItemCount() {
return result.size();
}
class MyViewHolder extends RecyclerView.ViewHolder {
private final SimpleDraweeView img;
private final TextView s_price;
private final TextView s_title;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
img = itemView.findViewById(R.id.search_img);
s_price = itemView.findViewById(R.id.search_price);
s_title = itemView.findViewById(R.id.search_title);
}
}
public interface onItemClickListener{
void onCklic(int i);
}
private onItemClickListener itemClickListener;
public void setItemClickListener(onItemClickListener itemClickListener) {
this.itemClickListener = itemClickListener;
}
}
//详情的页面--布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fff"
android:orientation="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fff">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="260dp">
</android.support.v4.view.ViewPager>
<TextView
android:id="@+id/numbre"
android:layout_width="wrap_content"
android:layout_height="260dp"
android:layout_alignParentRight="true"
android:gravity="right|bottom"
android:text="显示的当前页面"
android:textColor="#0f0"
android:textSize="35sp" />
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="40dp"
android:layout_marginTop="10dp"
android:layout_marginRight="40dp"
android:orientation="horizontal">
<TextView
android:id="@+id/shoopprice"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="价格"
android:textColor="#f00"
android:textSize="30sp" />
<TextView
android:id="@+id/shoopnum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="数量"
android:textSize="22sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="35dp"
android:layout_marginTop="12dp"
android:layout_marginRight="40dp"
android:orientation="vertical">
<TextView
android:id="@+id/shoopname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="名称"
android:textSize="25sp" />
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</WebView>
</RelativeLayout>
</LinearLayout>
</ScrollView>
</RelativeLayout>
//详情的Activity
package com.bawei.monthone.activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.ImageView;
import android.widget.TextView;
import com.bawei.monthone.R;
import com.bawei.monthone.adapter.DetailedAdapter;
import com.bawei.monthone.bean.DetailedBean;
import com.bawei.monthone.contract.DetailedContract;
import com.bawei.monthone.presenter.DetailedPresenter;
import com.bumptech.glide.Glide;
import java.util.ArrayList;
public class DetailedActivity extends AppCompatActivity implements DetailedContract.DetailedView {
private DetailedContract.DetailedPresenter detailedPresenter;
private SharedPreferences sp;
private TextView shop_price;
private TextView name;
private TextView num;
private ViewPager pager;
private TextView numbre;
private ArrayList<ImageView> imageViews;
private String[] split;
private WebView webView;
private int commodityId;
private int saleNum;
private int price;
private String commodityName;
private String img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detailed);
shop_price = findViewById(R.id.shoopprice);
name = findViewById(R.id.shoopname);
num = findViewById(R.id.shoopnum);
pager = findViewById(R.id.pager);
numbre = findViewById(R.id.numbre);
webView = findViewById(R.id.webView);
detailedPresenter = new DetailedPresenter();
detailedPresenter.attachView(this);
Intent intent = getIntent();
String id = intent.getStringExtra("id");
detailedPresenter.requestModel(id);
}
@Override
public void detailedData(DetailedBean.ResultBean result) {
commodityName = result.getCommodityName();
saleNum = result.getSaleNum();
price = result.getPrice();
String details = result.getDetails();
commodityId = result.getCommodityId();
/*webView.loadData(details, "text/html; charset=UTF-8", null);
//webview的自适应屏幕
WebSettings settings = webView.getSettings();
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);*/
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
String s = "<script type=\"text/javascript\">" +
"var imgs=document.getElementsByTagName('img');" +
"for(var i = 0; i<imgs.length; i++){" +
"imgs[i].style.width='100%';" +
"imgs[i].style.height='auto';" +
"}" +
"</script>";
webView.loadDataWithBaseURL(null, details + s + "<html><body>", "text/html", "utf-8", null);
name.setText(commodityName);
num.setText("已售" + saleNum + "件");
shop_price.setText("¥:" + price);
imageViews = new ArrayList<>();
String picture = result.getPicture();
split = picture.split(",");
for (int i = 0; i < split.length; i++) {
ImageView imageView = new ImageView(DetailedActivity.this);
Glide.with(DetailedActivity.this).load(split[i]).into(imageView);
imageViews.add(imageView);
DetailedAdapter detailedAdapter = new DetailedAdapter(DetailedActivity.this, imageViews);
pager.setAdapter(detailedAdapter);
}
img = split[0];
int i = pager.getCurrentItem() + 1;
numbre.setText(i + "/" + split.length);
pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
int ii = pager.getCurrentItem() + 1;
numbre.setText(ii + "/" + split.length);
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
}
}
//详情的适配器
package com.bawei.monthone.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import java.util.ArrayList;
/**
*/
public class DetailedAdapter extends PagerAdapter {
private Context context;
private ArrayList<ImageView> imageViews;
public DetailedAdapter(Context context, ArrayList<ImageView> imageViews) {
this.context = context;
this.imageViews = imageViews;
}
@Override
public int getCount() {
return imageViews.size();
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
return view == o;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
ImageView imageView = imageViews.get(position);
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView((View) object);
}
}
搜索列表+商品详情
最新推荐文章于 2022-06-03 20:43:26 发布