**第一步导入相关依赖,如(记得sync now)
compile 'com.squareup.okhttp3:okhttp:3.9.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.9.0'
compile 'com.google.code.gson:gson:2.8.2'
compile 'com.nostra13.universalimageloader:universal- image-loader:1.9.5'
compile 'org.greenrobot:eventbus:3.1.1'
compile 'com.android.support:recyclerview-v7:24.2.1'
**
*第二步,添加权限,如
<uses-permission android:name="android.permission.INTERNET">
</uses-permission>
*
**第三步,布局main_activity**
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.bawei.oneshoppingcar.view.MainActivity"
android:orientation="vertical"
>
<TextView
android:layout_width="match_parent"
android:layout_height="40dp"
android:text="购物车"
android:textSize="25sp"
android:textColor="#ff3660"
android:background="#990000ff"
android:gravity="center"
/>
<android.support.v7.widget.RecyclerView
android:id="@+id/Rv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
>
</android.support.v7.widget.RecyclerView>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:background="@android:color/white"
android:gravity="center_vertical"
>
<CheckBox
android:id="@+id/qx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:focusable="false"
android:text="全选"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:orientation="horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="合计"
/>
<TextView
android:id="@+id/tv_money"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_marginLeft="10dp"
android:paddingRight="10dp"
android:text="0"
android:textColor="@android:color/holo_red_light"
/>
<TextView
android:id="@+id/tv_num"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:background="@android:color/holo_red_dark"
android:gravity="center"
android:padding="10dp"
android:text="结算(0)"
android:textColor="@android:color/white"
/>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
**item**
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
>
<CheckBox
android:id="@+id/fx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginLeft="12dp"
>
<TextView
android:id="@+id/myphone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="小米Note"
/>
<TextView
android:id="@+id/myplace"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="中国大陆"
/>
<TextView
android:id="@+id/mytime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2017-11-21 15:58:59"
/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<TextView
android:id="@+id/myprice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="¥200"
android:layout_marginLeft="16dp"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginLeft="16dp"
>
<ImageView
android:id="@+id/add"
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/shopcart_add_red"
/>
<TextView
android:id="@+id/add_num_del"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
/>
<ImageView
android:id="@+id/del"
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/shopcart_minus_red"
/>
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="删除"
android:layout_marginLeft="46dp"
/>
</LinearLayout>
**net**
**Api**
public interface Api {
public static final String url = "http://result.eolinker.com/iYXEPGn4e9c6dafce6e5cdd23287d2bb136ee7e9194d3e9?uri=evaluation";
}
**HttpUtils**
public class HttpUtils {
private static volatile HttpUtils httpUtils;
private final OkHttpClient client;
private HttpUtils() {
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
client = new OkHttpClient.Builder()
.addInterceptor(logging)
.build();
}
public static HttpUtils getHttpUtils() {
if (httpUtils == null) {
synchronized (HttpUtils.class) {
if (httpUtils == null) {
httpUtils = new HttpUtils();
}
}
}
return httpUtils;
}
/**
* GET请求
*
* @param url
* @param callback
*/
public void doGet(String url, Callback callback) {
Request request = new Request.Builder().url(url).build();
client.newCall(request).enqueue(callback);
}
}
**OnNetListener**
public interface OnNetListener<T> {
public void onSuccess(T t);
public void onFailure(Exception e);
}
**bean**
**封装我就不展示代码啦**
**model**
**IMainModel**
public interface IMainModel {
public void getGoods(OnNetListener<GoosBean> onNetListener);
}
**MainModel**
public class MainModel implements IMainModel{
private Handler handler = new Handler(Looper.getMainLooper());
@Override
public void getGoods(final OnNetListener<GoosBean> onNetListener) {
HttpUtils.getHttpUtils().doGet(Api.url, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String string=response.body().string();
final GoosBean goosBean = new Gson().fromJson(string, GoosBean.class);
handler.post(new Runnable() {
@Override
public void run() {
onNetListener.onSuccess(goosBean);
}
});
}
});
}
}
**view**
**IMainActivity **
public interface IMainActivity {
public void showList(List<GoosBean.DataBean.DatasBean> list);
}
**MainActivity**
public class MainActivity extends AppCompatActivity implements IMainActivity{
private RecyclerView Rv;
private CheckBox qx;
private TextView tv_money;
private TextView tv_num;
private Myadapter myadapter;
private MainPresenter mainPresenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mainPresenter = new MainPresenter(this);
Rv = (RecyclerView) findViewById(R.id.Rv);
qx = (CheckBox) findViewById(R.id.qx);
tv_money = (TextView) findViewById(R.id.tv_money);
tv_num = (TextView) findViewById(R.id.tv_num);
Rv.setLayoutManager(new LinearLayoutManager(this));
mainPresenter.getGoods();
}
@Override
public void showList(List<GoosBean.DataBean.DatasBean> list) {
myadapter = new Myadapter(this,list);
Rv.setAdapter(myadapter);
}
}
**presenter**
**MainPresenter**
public class MainPresenter {
private IMainModel iMainModel;
private IMainActivity iMainActivity;
public MainPresenter(IMainActivity iMainActivity) {
this.iMainActivity = iMainActivity;
iMainModel = new MainModel();
}
public void getGoods(){
iMainModel.getGoods(new OnNetListener<GoosBean>() {
@Override
public void onSuccess(GoosBean goosBean) {
List<GoosBean.DataBean.DatasBean> list = new ArrayList<GoosBean.DataBean.DatasBean>();
List<GoosBean.DataBean> data = goosBean.getData();
for (int i = 0; i < data.size(); i++) {
List<GoosBean.DataBean.DatasBean> datas = data.get(i).getDatas();
list.addAll(datas);
}
iMainActivity.showList(list);
}
@Override
public void onFailure(Exception e) {
}
});
}
}
**adapter**
**Myadapter**
public class Myadapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
/*上下文*/
private Context context;
/*集合*/
private List<GoosBean.DataBean.DatasBean> list;
/*有参构造*/
public Myadapter(Context context, List<GoosBean.DataBean.DatasBean> list) {
this.context = context;
this.list = list;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
/*1.加载item布局*/
View view = LayoutInflater.from(context).inflate(R.layout.item, parent, false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
/*3.把封装里的数据(datasBean.getType_name)放入优化器( myViewHolder.fx)*/
final GoosBean.DataBean.DatasBean datasBean = list.get(position);
final MyViewHolder myViewHolder = (MyViewHolder) holder;
myViewHolder.fx.setChecked(datasBean.isChecked());
myViewHolder.myphone.setText(datasBean.getType_name());
myViewHolder.myplace.setText(datasBean.getMsg());
myViewHolder.mytime.setText(datasBean.getAdd_time());
myViewHolder.myprice.setText(datasBean.getPrice() + "");
myViewHolder.add_num_del.setText(datasBean.getNum() + "");
}
@Override
public int getItemCount() {
return list.size();
}
/*2.找到布局里的ID*/
class MyViewHolder extends RecyclerView.ViewHolder{
private final CheckBox fx;
private final TextView myphone;
private final TextView myplace;
private final TextView mytime;
private final TextView myprice;
private final TextView add_num_del;
public MyViewHolder(View itemView) {
super(itemView);
fx = (CheckBox) itemView.findViewById(R.id.fx);
myphone = (TextView) itemView.findViewById(R.id.myphone);
myplace = (TextView) itemView.findViewById(R.id.myplace);
myprice = (TextView) itemView.findViewById(R.id.myprice);
mytime = (TextView) itemView.findViewById(R.id.mytime);
add_num_del = (TextView) itemView.findViewById(R.id.add_num_del);
}
}
}
**希望可以帮到大家哦!!!**
android:MVP网络请求数据,运用RecyclerView-LinearLayout展示
最新推荐文章于 2019-03-17 20:59:33 发布