compile 'com.android.support:recyclerview-v7:26.1.0'
compile 'com.android.support:design:26.1.0'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.jakewharton:butterknife:8.8.1'
compile 'com.jakewharton:butterknife-compiler:8.8.1'
compile 'com.facebook.fresco:fresco:1.8.1'
compile 'com.android.support:support-v4:26.1.0'
testCompile 'junit:junit:4.12'
package com.example.zk43;
import android.content.Context;
import android.net.Uri;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import com.facebook.drawee.view.SimpleDraweeView;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
/**
* Created by Administrator on 2018/3/30.
*/
public class ELAdapter extends RecyclerView.Adapter<ELAdapter.ELViewHolder>{
private Context context;
private List<ELBean>mDatas;
public ELAdapter(Context context, List<ELBean> mDatas) {
this.context = context;
this.mDatas = mDatas;
}
@Override
public ELViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.item_el,parent,false);
ELViewHolder holder = new ELViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(ELViewHolder holder, int position) {
final ELBean bean = mDatas.get(position);
holder.titleTv.setText(bean.getName());
holder.telTv.setText(bean.getUser_tel());
holder.locationTv.setText(bean.getSchool());
holder.timeTv.setText(bean.getCreatedAt());
holder.priceTv.setText("¥"+bean.getPrice());
Uri uri = Uri.parse(bean.getProduct_url());
holder.sdv.setImageURI(uri);
// 添加每一项的点击事件
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(context,bean.getName(),Toast.LENGTH_LONG).show();
}
});
}
@Override
public int getItemCount() {
return mDatas.size();
}
class ELViewHolder extends RecyclerView.ViewHolder{
@BindView(R.id.item_el_tel)
TextView telTv;
@BindView(R.id.item_el_time)
TextView timeTv;
@BindView(R.id.item_el_title)
TextView titleTv;
@BindView(R.id.item_el_price)
TextView priceTv;
@BindView(R.id.item_el_location)
TextView locationTv;
@BindView(R.id.item_el_sdv)
SimpleDraweeView sdv;
public ELViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this,itemView);
}
}
}
package com.example.zk43;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.List;
/**
* Created by Administrator on 2018/3/30.
*/
public class ELBean {
/**
* cid : 1
* createdAt : 2016-04-26 11:26:31
* id : 0
* name : wef
* price : 13
* product_url : http://www.meditool.cn/uploadfiles/image/20180103/3159063C-DD08-03DA-2AFB-351C3E28CC26.jpg
* school : 河北工业大学
* user_icon_url : http://file.bmob.cn/M03/46/02/oYYBAFcexRGAVm0ZABa666fgxbE048.jpg
* user_tel : 13698563214
* username : 15822135546
*/
private int cid;
private String createdAt;
private int id;
private String name;
private String price;
private String product_url;
private String school;
private String user_icon_url;
private String user_tel;
private String username;
public int getCid() {
return cid;
}
public void setCid(int cid) {
this.cid = cid;
}
public String getCreatedAt() {
return createdAt;
}
public void setCreatedAt(String createdAt) {
this.createdAt = createdAt;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getProduct_url() {
return product_url;
}
public void setProduct_url(String product_url) {
this.product_url = product_url;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
public String getUser_icon_url() {
return user_icon_url;
}
public void setUser_icon_url(String user_icon_url) {
this.user_icon_url = user_icon_url;
}
public String getUser_tel() {
return user_tel;
}
public void setUser_tel(String user_tel) {
this.user_tel = user_tel;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public static List<ELBean> getELBeanList(String s){
Gson gson = new Gson();
Type type = new TypeToken<List<ELBean>>(){}.getType();
List<ELBean>list = gson.fromJson(s,type);
return list;
}
}
package com.example.zk43;
import android.os.Bundle;
import android.support.v4.app.Fragment;
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 com.facebook.drawee.backends.pipeline.Fresco;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
/**
* A数码界面
*/
public class ELFragment extends Fragment {
String url = "https://gitee.com/little_bird_oh_777/test_data_collection/raw/master/";
@BindView(R.id.el_rv)
RecyclerView rv;
// 数据源
private List<ELBean>mDatas = new ArrayList<>();
private ELAdapter elAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_el, container, false);
ButterKnife.bind(this,view);
Fresco.initialize(getActivity());
LinearLayoutManager manager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
rv.setLayoutManager(manager);
// 设置适配器
elAdapter = new ELAdapter(getActivity(),mDatas);
rv.setAdapter(elAdapter);
// 加载网络数据
loadWebData();
return view;
}
/**
* 加载网络数据的方法
* */
private void loadWebData() {
Retrofit.Builder builder = new Retrofit.Builder();
builder.baseUrl(url);
builder.addConverterFactory(GsonConverterFactory.create());
Retrofit retrofit = builder.build();
MyInter myInter = retrofit.create(MyInter.class);
Call<List<ELBean>> call = myInter.getElbean();
call.enqueue(new Callback<List<ELBean>>() {
@Override
public void onResponse(Call<List<ELBean>> call, Response<List<ELBean>> response) {
List<ELBean> list = response.body();
mDatas.addAll(list);
elAdapter.notifyDataSetChanged();
}
@Override
public void onFailure(Call<List<ELBean>> call, Throwable t) {
}
});
}
}
package com.example.zk43;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
public class MainActivity extends AppCompatActivity {
@BindView(R.id.main_tab)
TabLayout tabLayout;
@BindView(R.id.main_vp)
ViewPager viewPager;
private List<String>titleList = new ArrayList<>();
private List<Fragment>fragmentList = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
initPager();
}
private void initPager() {
titleList.add("数码");
titleList.add("书籍");
titleList.add("运动");
titleList.add("生活");
titleList.add("其他");
fragmentList.add(new ELFragment());
fragmentList.add(new ELFragment2());
fragmentList.add(new ELFragment3());
fragmentList.add(new ELFragment4());
fragmentList.add(new ELFragment5());
MyPagerAdapter pagerAdapter = new MyPagerAdapter(getSupportFragmentManager(), titleList, fragmentList);
viewPager.setAdapter(pagerAdapter);
tabLayout.setupWithViewPager(viewPager);
}
}
package com.example.zk43;
import java.util.List;
import retrofit2.Call;
import retrofit2.http.GET;
/**
* Created by Administrator on 2018/3/30.
*/
public interface MyInter {
@GET("cellphone.json")
Call<List<ELBean>> getElbean();
@GET("books.json")
Call<List<ELBean>> getElbean2();
@GET("movement.json")
Call<List<ELBean>> getElbean3();
@GET("life.json")
Call<List<ELBean>> getElbean4();
@GET("other.json")
Call<List<ELBean>> getElbean5();
}
package com.example.zk43;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import java.util.List;
/**
* Created by Administrator on 2018/3/30.
*/
public class MyPagerAdapter extends FragmentPagerAdapter{
private List<String>titleList;
private List<Fragment>fragmentList;
public MyPagerAdapter(FragmentManager fm, List<String> titleList, List<Fragment> fragmentList) {
super(fm);
this.titleList = titleList;
this.fragmentList = fragmentList;
}
@Override
public CharSequence getPageTitle(int position) {
return titleList.get(position);
}
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.zk43.MainActivity">
<RelativeLayout
android:id="@+id/title_layout"
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="#00AAAA">
<ImageView
android:id="@+id/main_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/back"
android:layout_marginLeft="10dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/main_back"
android:text="浩宇"
android:textSize="24sp"
android:textColor="#FFF"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"/>
<ImageView
android:id="@+id/main_person"
android:layout_width="30dp"
android:layout_height="30dp"
android:scaleType="centerCrop"
android:src="@mipmap/title_user"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="20dp"/>
</RelativeLayout>
<android.support.design.widget.TabLayout
android:id="@+id/main_tab"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabTextColor="#000000"
app:tabSelectedTextColor="#0000FF"
app:tabIndicatorHeight="2dp"
app:tabIndicatorColor="#0000ff"
app:tabGravity="fill"
app:tabMode="scrollable">
</android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/main_vp"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
</LinearLayout>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.zk43.ELFragment">
<!-- TODO: Update blank fragment layout -->
<android.support.v7.widget.RecyclerView
android:id="@+id/el_rv"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
<?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="wrap_content"
android:padding="10dp">
<ImageView
android:id="@+id/item_el_head"
android:layout_width="40dp"
android:layout_height="40dp"
app:srcCompat="@mipmap/ic_launcher" />
<TextView
android:id="@+id/item_el_tel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="15810205208"
android:textSize="18sp"
android:layout_toRightOf="@+id/item_el_head"
android:textStyle="bold"
android:layout_marginTop="10dp"/>
<TextView
android:id="@+id/item_el_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="2016-04-26 11:26:31"
android:layout_below="@+id/item_el_tel"/>
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/item_el_sdv"
android:layout_width="150dp"
android:layout_height="100dp"
app:placeholderImage="@mipmap/ic_img_profile_bg"
android:layout_below="@+id/item_el_head"
android:layout_marginTop="20dp"
app:placeholderImageScaleType="centerCrop"
app:actualImageScaleType="centerCrop"
/>
<TextView
android:id="@+id/item_el_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="pc"
android:layout_toRightOf="@+id/item_el_sdv"
android:layout_alignTop="@+id/item_el_sdv"
android:layout_margin="10dp"
android:textSize="24sp"
/>
<TextView
android:id="@+id/item_el_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="¥123"
android:textSize="18sp"
android:textColor="#ce2040"
android:layout_below="@+id/item_el_title"
android:layout_alignLeft="@+id/item_el_title"
/>
<TextView
android:id="@+id/item_el_location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="南开大学"
android:textSize="18sp"
android:layout_below="@+id/item_el_price"
android:layout_alignLeft="@+id/item_el_price"
android:layout_marginTop="10dp"
android:drawableLeft="@mipmap/location"/>
<ImageView
android:background="#AAAAAA"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_below="@+id/item_el_location"
android:layout_marginTop="1dp"/>
</RelativeLayout>