compile 'com.squareup.okhttp3:okhttp:3.9.0'
compile 'com.android.support:recyclerview-v7:25.3.1'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.google.code.gson:gson:2.8.2'
compile project(':swiperefreshlayoutlibrary')
public class MainActivity extends AppCompatActivity {
private MyRecyclerViewAdapter re;
private RecyclerView recylerview;
List<Bean.GoodsListBean> list;
private SwipyRefreshLayout refrsh;
private int page = 1;
private Handler handler=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
handler=new Handler();
refrsh = (SwipyRefreshLayout) findViewById(R.id.refrsh);
recylerview = (RecyclerView) findViewById(R.id.recyclerview);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(MainActivity.this);
recylerview.setLayoutManager(linearLayoutManager);
initData();
refrsh.setDirection(SwipyRefreshLayoutDirection.BOTH);
refrsh.setOnRefreshListener(new SwipyRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh(int index) {
handler.postDelayed(new Runnable() {
@Override
public void run() {
page++;
initData();
refrsh.setRefreshing(false);
Toast.makeText(MainActivity.this, "刷新成功", Toast.LENGTH_SHORT).show();
re.notifyDataSetChanged();
}
},2000);
}
@Override
public void onLoad(int index) {
handler.postDelayed(new Runnable() {
@Override
public void run() {
page++;
initData();
refrsh.setRefreshing(false);
Toast.makeText(MainActivity.this, "加载成功", Toast.LENGTH_SHORT).show();
re.notifyDataSetChanged();
}
},2000);
}
});
}
private void initData() {
OkHttpClient okHttpClient = MyApplivation.okHttpClient();
Request request = new Request.Builder().url("http://apiv3.yangkeduo.com/v5/newlist?page=%22+page+%22&size=20").build();
okHttpClient.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();
if (response.isSuccessful()) {
Gson gson = new Gson();
Bean bean=gson.fromJson(json,Bean.class);
list=bean.getGoods_list();
runOnUiThread(new Runnable() {
@Override
public void run() {
re = new MyRecyclerViewAdapter(MainActivity.this,list);
recylerview.setAdapter(re);
}
});
}
}
});
}
}
public class MyApplivation extends Application{
private static OkHttpClient okHttpClient;
@Override
public void onCreate() {
super.onCreate();
okHttpClient = new OkHttpClient();
okHttpClient = okHttpClient.newBuilder()
.connectTimeout(5, TimeUnit.SECONDS)
.readTimeout(5, TimeUnit.SECONDS)
.build();
}
public static OkHttpClient okHttpClient() {
return okHttpClient;
}
}
public class MyRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
private Context context;
private List<Bean.GoodsListBean>list;
public MyRecyclerViewAdapter(Context context,List<Bean.GoodsListBean>list){
this.context=context;
this.list=list;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view=null;
RecyclerView.ViewHolder holder=null;
switch (viewType){
case 0:
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false);
holder=new ViewHolder(view);
break;
case 1:
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_2, parent, false);
holder=new ViewHolder2(view);
break;
}
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
switch (getItemViewType(position)){
case 0:
ViewHolder holder1= (ViewHolder) holder;
holder1.txt1.setText(list.get(position).getGoods_name());
Glide.with(context).load(list.get(position).getThumb_url()).into(holder1.img1);
break;
case 1:
ViewHolder2 holder2= (ViewHolder2) holder;
holder2.txt2.setText(list.get(position).getGoods_name());
Glide.with(context).load(list.get(position).getThumb_url()).into(holder2.img2);
break;
}
}
@Override
public int getItemViewType(int position) {
if (position%3==0){
return 0;
}else {
return 1;
}
}
@Override
public int getItemCount() {
return list.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
private final ImageView img1;
private final TextView txt1;
public ViewHolder(View itemView) {
super(itemView);
img1 = (ImageView) itemView.findViewById(R.id.image1);
txt1 = (TextView) itemView.findViewById(R.id.text1);
}
}
public class ViewHolder2 extends RecyclerView.ViewHolder{
private final ImageView img2;
private final TextView txt2;
public ViewHolder2(View itemView) {
super(itemView);
img2 = (ImageView) itemView.findViewById(R.id.image2);
txt2 = (TextView) itemView.findViewById(R.id.text2);
}
}
}
<com.bawei.swiperefreshlayoutlibrary.SwipyRefreshLayout
android:id="@+id/refrsh"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
</com.bawei.swiperefreshlayoutlibrary.SwipyRefreshLayout>
<ImageView
android:id="@+id/image1"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_marginTop="10dp"
android:scaleType="fitXY"
android:src="@mipmap/ic_launcher"/>
<TextView
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="asdfasfasdfdsafdsafadsdfas"
android:textSize="20sp" />
<ImageView
android:id="@+id/image2"
android:layout_width="100dp"
android:layout_height="120dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp" />
<TextView
android:id="@+id/text2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:text="asdfasfasdfdsafdsafadsdfas"
android:textSize="20sp"/>