/**
* 展示商品的适配器
*/
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.myapp.R;
import com.example.myapp.ShopBean.BiaoBean;
import com.nostra13.universalimageloader.core.ImageLoader;
public class BiaoAdapter extends RecyclerView.Adapter<BiaoAdapter.MyHolder> {
OnItemClickListener listener;
public void setOnItemClickListener(OnItemClickListener listener){
this.listener=listener;
}
private Context context;
private BiaoBean biaobean;
public BiaoAdapter(Context context, BiaoBean biaobean) {
this.context = context;
this.biaobean = biaobean;
}
@Override
public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = View.inflate(context, R.layout.shop_item, null);
MyHolder holder = new MyHolder(view);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
listener.onItemClick((int) view.getTag());
}
});
return holder;
}
@Override
public void onBindViewHolder(MyHolder holder, int position) {
holder.names.setText(biaobean.getDatas().getGoods_list().get(position).getGoods_name());
holder.names.setText(biaobean.getDatas().getGoods_list().get(position).getGoods_price());
ImageLoader.getInstance().displayImage(biaobean.getDatas().getGoods_list().get(position).getGoods_image_url(),holder.images);
holder.itemView.setTag(position);
}
@Override
public int getItemCount() {
return biaobean.getDatas().getGoods_list().size();
}
class MyHolder extends RecyclerView.ViewHolder {
final TextView names;
final TextView prices;
final ImageView images;
public MyHolder(View itemView) {
super(itemView);
names = (TextView) itemView.findViewById(R.id.names);
prices = (TextView) itemView.findViewById(R.id.prices);
images=(ImageView) itemView.findViewById(R.id.images);
}
}
public interface OnItemClickListener{
public void onItemClick(int position);
}
}
/**
* 展示商品并点击跳转到详情页面
*/
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.Parcelable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.widget.EditText;
import android.widget.Toast;
import com.example.myapp.R;
import com.example.myapp.ShopBean.Bean;
import com.example.myapp.ShopBean.BiaoBean;
import com.example.myapp.SpacesItemDecoration;
import com.example.myapp.TheAdapter.BiaoAdapter;
import com.example.myapp.TheAdapter.MyAdapter;
import com.google.gson.Gson;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.util.List;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class Shangpin extends AppCompatActivity {
private RecyclerView shopRy;
private BiaoBean biaobean;
private BiaoAdapter biaoAdapter;
private List<BiaoBean.DatasBean.GoodsListBean> goods_list;
private Handler hand = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
String s = (String) msg.obj;
Gson gson=new Gson();
biaobean=gson.fromJson(s,BiaoBean.class);
goods_list=biaobean.getDatas().getGoods_list();
biaoAdapter=new BiaoAdapter(Shangpin.this,biaobean);
shopRy.setAdapter(biaoAdapter);
biaoAdapter.setOnItemClickListener(new BiaoAdapter.OnItemClickListener() {
@Override
public void onItemClick(int position) {
BiaoBean.DatasBean.GoodsListBean goodsListBean=goods_list.get(position);
Intent intent1=new Intent(Shangpin.this,ShopXiang.class);
intent1.putExtra("goodsListBean", (Serializable) goodsListBean);
startActivity(intent1);
}
});
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.shanpin);
shopRy=(RecyclerView)findViewById(R.id.shop_ry);
GridLayoutManager linear=new GridLayoutManager(Shangpin.this,1);
shopRy.setLayoutManager(linear);
OkHttpClient mOkHttpClient = new OkHttpClient();
//创建一个Request
Request request = new Request.Builder()
.url("http://169.254.177.190/mobile/index.php?act=goods&op=goods_list&page=100")
.build();
mOkHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
InputStream inputStream = response.body().byteStream();
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
int i;
final byte[] b = new byte[1024];
while( (i = inputStream.read(b)) != -1 ){
baos.write(b,0,i);
}
Message msg = Message.obtain();
msg.obj = baos.toString();
hand.sendMessage(msg);
}
});
}
}
/**
* 根据商品列表传来的id按需求显示需要的数据
*/
public class ShopXiang extends AppCompatActivity {
private String goods_id;
private ShopxiangBean biaobean;
private ImageView shop_images;
private TextView tv_name;
private Handler hand = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
String s = (String) msg.obj;
Gson gson=new Gson();
biaobean=gson.fromJson(s,ShopxiangBean.class);
List<ShopxiangBean.DatasBean.GoodsListBean> goods_list = biaobean.getDatas().getGoods_list();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.shopxiang);
//定义控件
// shop_ry = (RecyclerView)findViewById(R.id.shop_recyclerview);
shop_images=(ImageView)findViewById(R.id.shop_imges) ;
tv_name=(TextView)findViewById(R.id.tv_name);
//接受传来的数据
Intent intent = getIntent();
BiaoBean.DatasBean.GoodsListBean goodsListBean = (BiaoBean.DatasBean.GoodsListBean) intent.getSerializableExtra("goodsListBean");
//获得id
goods_id = goodsListBean.getGoods_id();
//获得图片
String url= goodsListBean.getGoods_image_url();
ImageLoader.getInstance().displayImage(url,shop_images);
//获得名字
String goods_name = goodsListBean.getGoods_name();
tv_name.setText(goods_name);
//OkHttp获取数据
OkHttpClient mOkHttpClient = new OkHttpClient();
//创建一个Request
final Request request = new Request.Builder()
.url("http://169.254.177.190/mobile/index.php?act=goods&op=goods_detail&goods_id="+goods_id)
.build();
mOkHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String json=response.body().string();
Message msg = Message.obtain();
msg.obj = json;
hand.sendMessage(msg);
}
});
}
}
/**
* 用ImageLoader解析图片
*/
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
ImageLoaderConfiguration con = ImageLoaderConfiguration.createDefault(this);
ImageLoader.getInstance().init(con);
}
}
/**
* XML
*/

shanpin.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/shop_ry"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</android.support.v7.widget.RecyclerView>
</LinearLayout>
shop_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/images"
android:layout_width="150dp"
android:layout_height="150dp"
android:src="@mipmap/ic_launcher"
/>
<TextView
android:id="@+id/names"
android:layout_width="200dp"
android:layout_height="30dp"
android:text="名字"
android:textSize="20dp"
android:layout_marginTop="40dp"
android:layout_toRightOf="@+id/images" />
<TextView
android:id="@+id/prices"
android:layout_width="200dp"
android:layout_height="30dp"
android:text="价格"
android:textSize="20dp"
android:layout_marginTop="100dp"
android:layout_toRightOf="@+id/images" />
</RelativeLayout>
shopxiang.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/contentxianqing_head"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
>
<ImageView
android:id="@+id/contentxianqing_back"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/poplayer_close_btn"/>
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/tb_icon_more_servers_56"
android:layout_alignParentRight="true"
/>
</RelativeLayout>
<ImageView
android:id="@+id/shop_imges"
android:layout_width="match_parent"
android:layout_height="300dp" />
<TextView
android:id="@+id/tv_name"
android:layout_marginTop="310dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentBottom="true"
>
<LinearLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content" />
<RadioButton
android:id="@+id/contentxianqing_dianpu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="店铺"
android:button="@null"
/>
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content" />
<RadioButton
android:id="@+id/contentxianqing_kefu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="客服"
android:button="@null"
/>
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content" />
<RadioButton
android:id="@+id/contentxianqing_shoucang"
android:layout_width="wrap_content"
android:layout_height="57dp"
android:text="收藏"
android:button="@null"
/>
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="6dp">
<Button
android:id="@+id/contentxianqing_gouwuche"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="加入购物车"
android:background="#FF9C02"/>
<Button
android:id="@+id/contentxianqing_goumai"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="立即购买"
android:background="#FF6F00"
/>
</LinearLayout>
</LinearLayout>
</RelativeLayout>