Fragment底部导航
package tuisong.bw.com.week3;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import tuisong.bw.com.week3.fragment.Five;
import tuisong.bw.com.week3.fragment.Four;
import tuisong.bw.com.week3.fragment.One;
import tuisong.bw.com.week3.fragment.Three;
import tuisong.bw.com.week3.fragment.Two;
public class MainActivity extends AppCompatActivity {
private RadioGroup rg;
private RadioButton bt1;
private RadioButton bt2;
private RadioButton bt3;
private One one;
private Two two;
private Three three;
private Four four;
private Five five;
private FragmentManager manager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rg = findViewById(R.id.rg);
bt1 = findViewById(R.id.bt1);
bt2 = findViewById(R.id.bt2);
bt3 = findViewById(R.id.bt3);
manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
one = new One();
two = new Two();
three = new Three();
five = new Five();
four = new Four();
transaction.add(R.id.frame, one);
transaction.add(R.id.frame, two);
transaction.add(R.id.frame, three);
transaction.add(R.id.frame, four);
transaction.add(R.id.frame, five);
transaction.show(one).hide(two).hide(three);
transaction.commit();
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
FragmentTransaction transaction1 = manager.beginTransaction();
switch (checkedId){
case R.id.bt1:
transaction1.show(one).hide(two).hide(three).hide(four).hide(five).commit();
break;
case R.id.bt2:
transaction1.show(two).hide(one).hide(three).hide(four).hide(five).commit();
break;
case R.id.bt3:
transaction1.show(three).hide(two).hide(one).hide(four).hide(five).commit();
break;
case R.id.bt4:
transaction1.show(four).hide(two).hide(one).hide(three).hide(five).commit();
break;
case R.id.bt5:
transaction1.show(five).hide(two).hide(one).hide(three).hide(four).commit();
break;
}
}
});
}
}
显示页面
package tuisong.bw.com.week3.fragment;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.RequiresApi;
import android.support.v4.app.Fragment;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.Toast;
import com.jwkj.libzxing.OnQRCodeScanCallback;
import com.jwkj.libzxing.QRCodeManager;
import org.json.JSONArray;
import java.util.ArrayList;
import java.util.List;
import tuisong.bw.com.week3.R;
import tuisong.bw.com.week3.adapter.MyAdapter;
import tuisong.bw.com.week3.adapter.MyAdapterThrid;
import tuisong.bw.com.week3.bean.JsonBean;
import tuisong.bw.com.week3.bean.JsonThrid;
import tuisong.bw.com.week3.presenter.GoodsPresenter;
import tuisong.bw.com.week3.presenter.GoodsPresenterSec;
import tuisong.bw.com.week3.presenter.GoodsPresenterThrid;
import tuisong.bw.com.week3.view.GoodsView;
import tuisong.bw.com.week3.view.GoodsViewSec;
import tuisong.bw.com.week3.view.GoodsViewThrid;
/*
*********************************
*作者:wangyaowei
*时间:2019/3/1 16:24
**
*
*********************************
*/public class One extends Fragment implements GoodsView, View.OnClickListener, GoodsViewSec,GoodsViewThrid {
private GoodsPresenterSec goodsPresenterSec;
private RecyclerView rlv1;
private tuisong.bw.com.week3.SearchView searchView;
private GoodsPresenter goodsPresenter;
private RadioGroup rg;
private String sou="裙子";
private Button sao;
private Button sousuo;
private EditText et_name;
private String name;
private RecyclerView rlv2;
private RecyclerView rlv3;
private GoodsPresenterThrid goodsPresenterThrid;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.one_layout,container,false);
searchView=view.findViewById(R.id.searchview);
rlv1 = view.findViewById(R.id.rlv1);
rlv2 = view.findViewById(R.id.rlv2);
rlv3 = view.findViewById(R.id.rlv3);
rg = view.findViewById(R.id.rg);
//vp = view.findViewById(R.id.vp);
//头部导航的控件
sao = view.findViewById(R.id.sao);
sousuo = view.findViewById(R.id.sou);
et_name = view.findViewById(R.id.et_name);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
rlv1.setLayoutManager(linearLayoutManager);
LinearLayoutManager linearLayoutManager1 = new LinearLayoutManager(getContext());
rlv2.setLayoutManager(linearLayoutManager1);
GridLayoutManager linearLayoutManager3 = new GridLayoutManager(getContext(),3);
rlv3.setLayoutManager(linearLayoutManager3);
//P 层
goodsPresenter =new GoodsPresenter(this);
goodsPresenter.relaed(sou);
goodsPresenterSec = new GoodsPresenterSec(this);
goodsPresenterThrid = new GoodsPresenterThrid(this);
sao.setOnClickListener(this);
sousuo.setOnClickListener(this);
return view;
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.sao:
QRCodeManager.getInstance().with(getActivity()).setReqeustType(0).scanningQRCode(new OnQRCodeScanCallback() {
@Override
public void onCompleted(String s) {
}
@Override
public void onError(Throwable throwable) {
}
@Override
public void onCancel() {
}
});
break;
case R.id.sou:
name = et_name.getText().toString();
sou=name;
Toast.makeText(getActivity(), "123"+name, Toast.LENGTH_SHORT).show();
goodsPresenter.relaed(sou);
Log.i("XXX",sou);
break;
}
}
@Override
public void onMessageSec(JSONArray resultSrc) {
final MyAdapter myAdapter=new MyAdapter(getActivity(),resultSrc);
rlv2.setAdapter(myAdapter);
Log.i("eeeeee",resultSrc.toString());
myAdapter.setOnItemClickLisenter(new MyAdapter.OnItemClickLisenter() {
@Override
public void onClick(String id) {
Toast.makeText(getContext(), ""+id, Toast.LENGTH_SHORT).show();
goodsPresenterThrid.sendId(id);
}
});
}
@Override
public void onMessage(JSONArray result) {
Log.i("sss",result.toString());
final MyAdapter myAdapter=new MyAdapter(getActivity(),result);
rlv1.setAdapter(myAdapter);
Log.i("eeeeee",result.toString());
myAdapter.setOnItemClickLisenter(new MyAdapter.OnItemClickLisenter() {
@Override
public void onClick(String id) {
Toast.makeText(getContext(), ""+id, Toast.LENGTH_SHORT).show();
goodsPresenterSec.send(id);
}
});
}
@Override
public void onMessageThrid(JSONArray result) {
MyAdapterThrid myAdapterThrid = new MyAdapterThrid(getActivity(), result);
rlv3.setAdapter(myAdapterThrid);
}
/*@Override
public void onMessageThrid(ArrayList<JsonThrid> data) {
MyAdapterThrid myAdapterThrid = new MyAdapterThrid(getActivity(), data);
rlv3.setAdapter(myAdapterThrid);
}*/
}
一二级适配器
package tuisong.bw.com.week3.adapter;
import android.content.Context;
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.annotation.RequiresApi;
import android.support.v4.app.FragmentActivity;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.google.gson.Gson;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.w3c.dom.Text;
import java.util.ArrayList;
import tuisong.bw.com.week3.R;
import tuisong.bw.com.week3.bean.JsonBean;
/*
*********************************
*作者:wangyaowei
*时间:2019/3/1 20:50
**
*
*********************************
*/public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
private Context context;
private JSONArray result;
public MyAdapter(Context context, JSONArray result) {
this.context = context;
this.result = result;
}
public interface OnItemClickLisenter{
void onClick(String id);
}
private OnItemClickLisenter onItemClickLisenter;
public void setOnItemClickLisenter(OnItemClickLisenter onItemClickLisenter){
this.onItemClickLisenter=onItemClickLisenter;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view=LayoutInflater.from(context).inflate(R.layout.item_layout,null,false);
MyViewHolder myViewHolder=new MyViewHolder(view);
return myViewHolder;
}
@Override
public void onBindViewHolder(@NonNull final MyViewHolder myViewHolder, int i) {
try {
JSONObject jsonObject = result.getJSONObject(i);
String name = jsonObject.getString("name");
myViewHolder.name.setText(name);
} catch (JSONException e) {
e.printStackTrace();
}
myViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int layoutPosition = myViewHolder.getLayoutPosition();
try {
JSONObject jsonObject = result.getJSONObject(layoutPosition);
String id = jsonObject.getString("id");
if (onItemClickLisenter!=null){
onItemClickLisenter.onClick(id);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});
}
@Override
public int getItemCount() {
return result.length();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
private final TextView name;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
name = itemView.findViewById(R.id.name);
}
}
}
三级适配器
package tuisong.bw.com.week3.adapter;
import android.content.Context;
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.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.google.gson.Gson;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.util.ArrayList;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Response;
import tuisong.bw.com.week3.R;
import tuisong.bw.com.week3.bean.JsonBeanThrid;
import tuisong.bw.com.week3.bean.JsonThrid;
import tuisong.bw.com.week3.utils.OkHttpUtils;
/*
*********************************
*作者:wangyaowei
*时间:2019/3/2 9:55
**
*
*********************************
*/public class MyAdapterThrid extends RecyclerView.Adapter<MyAdapterThrid.MyViewHolder> {
private Context contex;
private JSONArray result;
public MyAdapterThrid(Context contex, JSONArray result) {
this.contex = contex;
this.result = result;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view=LayoutInflater.from(contex).inflate(R.layout.item_three_layout,null,false);
MyViewHolder myViewHolder = new MyViewHolder(view);
return myViewHolder;
}
@Override
public void onBindViewHolder(@NonNull final MyViewHolder myViewHolder, final int i) {
try {
JSONObject jsonObject = result.getJSONObject(i);
String commodityName = jsonObject.getString("commodityName");
String masterPic = jsonObject.getString("masterPic");
String price = jsonObject.getString("price");
myViewHolder.title.setText(commodityName);
myViewHolder.price.setText("$ : "+price);
Glide.with(contex).load(masterPic).into(myViewHolder.img);
} catch (JSONException e) {
e.printStackTrace();
}
/* String path="http://172.17.8.100/small/commodity/v1/findCommodityByCategory?page=1&count=6&categoryId=1001004002";
OkHttpUtils.getInstance().getData(path, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String s = response.body().toString();
Gson gson = new Gson();
JsonBeanThrid jsonBeanThrid = gson.fromJson(s, JsonBeanThrid.class);
String commodityName = jsonBeanThrid.getData().get(i).getCommodityName();
String masterPic = jsonBeanThrid.getData().get(i).getMasterPic();
String price = jsonBeanThrid.getData().get(i).getPrice();
myViewHolder.price.setText(price);
myViewHolder.title.setText(commodityName);
// Glide.with()
}
});*/
}
@Override
public int getItemCount() {
return result.length();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
private final ImageView img;
private final TextView title;
private final TextView price;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
img = itemView.findViewById(R.id.thrid_img);
title = itemView.findViewById(R.id.thrid_title);
price = itemView.findViewById(R.id.thrid_price);
}
}
}
网络
package tuisong.bw.com.week3.utils;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
/*
*********************************
*作者:wangyaowei
*时间:2019/3/1 16:27
**
*
*********************************
*/public class OkHttpUtils {
private static OkHttpUtils okHttpUtils=null;
public OkHttpUtils() {
}
//返回实例的方法
public static OkHttpUtils getInstance(){
if (okHttpUtils==null){
synchronized (OkHttpUtils.class){
okHttpUtils=new OkHttpUtils();
}
}
return okHttpUtils;
}
private static OkHttpClient okHttpClient=null;
public static synchronized OkHttpClient getOkHttpClient(){
if (okHttpClient==null){
okHttpClient=new OkHttpClient();
}
return okHttpClient;
}
public static void getData(String url, Callback callback){
OkHttpClient okHttpClient=getOkHttpClient();
Request build = new Request.Builder()
.url(url)
.build();
Call call=okHttpClient.newCall(build);
call.enqueue(callback);
}
}