分类布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:background="#EBEBEB"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/top"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/img_saomiao"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_marginLeft="3dp"
android:padding="7dp"
android:src="@drawable/scan" />
<TextView
android:id="@+id/shouye_sao"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/img_saomiao"
android:text="扫啊扫"
android:textColor="#000" />
<EditText
android:id="@+id/classify_sousuo"
android:layout_width="360dp"
android:layout_height="40dp"
android:layout_marginLeft="60dp"
android:layout_marginTop="15dp"
android:background="@drawable/wenbenkuang"
android:drawableLeft="@drawable/sear"
android:drawableRight="@drawable/robote"
android:hint="请输入搜索的内容"
android:textColor="#000" />
<ImageView
android:id="@+id/img2"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_alignParentRight="true"
android:layout_marginRight="8dp"
android:padding="7dp"
android:src="@drawable/messa" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@id/img2"
android:layout_marginRight="10dp"
android:text="消息"
android:textColor="#000" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_below="@id/top"
android:layout_marginTop="5dp"
android:background="#787878" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/top"
android:layout_marginTop="13dp">
<ListView
android:id="@+id/lv"
android:layout_width="100dp"
android:layout_height="match_parent"></ListView>
<ListView
android:id="@+id/rightlist"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_toRightOf="@id/lv"></ListView>
</RelativeLayout>
</RelativeLayout>
分类fragmentpackage com.bwie.newjingd.fragment;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;
import com.bwie.newjingd.R;
import com.bwie.newjingd.adapter.MyClassifyLeftAdapter;
import com.bwie.newjingd.adapter.MyRightTextAdapter;
import com.bwie.newjingd.bean.Btn_Login;
import com.bwie.newjingd.bean.Fenlei;
import com.bwie.newjingd.bean.FenleiRightBean;
import com.bwie.newjingd.presenter.ClassifyHomePre;
import com.bwie.newjingd.v.ClassifyView;
import com.bwie.newjingd.v.Main_Fenlei_sousuo;
import com.uuzuche.lib_zxing.activity.CaptureActivity;
import com.uuzuche.lib_zxing.activity.CodeUtils;
import java.util.List;
/**
* Created by 老北城 on 2017/12/07.
* 这个是分类页面
*/
public class ClassifyFragment extends Fragment implements ClassifyView {
private View view;
private ListView lvleft;
private ClassifyHomePre classifyHomePre;
private ListView rightlist;
public static int Ml;//定义一个值
private MyRightTextAdapter myRightTextAdapter;
private MyClassifyLeftAdapter myClassifyLeftAdapter;
private EditText sousuo;
private ImageView saomiao;
private static final int REQEUST_CODE = 111;//给相机调用设置一个值
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = View.inflate(getContext(), R.layout.classify_layout, null);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
lvleft = (ListView) getView().findViewById(R.id.lv);
rightlist = (ListView) getView().findViewById(R.id.rightlist);
sousuo = (EditText) getView().findViewById(R.id.classify_sousuo);
//扫描二维码
saomiao = (ImageView) getView().findViewById(R.id.img_saomiao);
//点击扫描二维码
saomiao.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(), CaptureActivity.class);
startActivityForResult(intent, REQEUST_CODE);
}
});
//点击搜索跳转页面
sousuo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getContext(), Main_Fenlei_sousuo.class);
startActivity(intent);
}
});
//p层在V层实现
classifyHomePre = new ClassifyHomePre(this);
classifyHomePre.classify();
//首先加载的时候给他一个默认值
classifyHomePre.setId(1 + "");
}
//扫描二维码需要一个回传值
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQEUST_CODE) {
if (null != data) {
//得到一个bundle
Bundle bundle = data.getExtras();
if (bundle == null) {
return;
}
//判断扫描是否成功
if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_SUCCESS) {
//获取扫描结果
String result = bundle.getString(CodeUtils.RESULT_STRING);
//吐司扫描结果
Toast.makeText(getActivity(), result, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getActivity(), "解析失败", Toast.LENGTH_SHORT).show();
}
}
}
}
//分类右面请求成功之后数据 然后在配置适配器
@Override
public void onSuccess1(final List<Fenlei> list) {
myClassifyLeftAdapter = new MyClassifyLeftAdapter(getContext(), list);
lvleft.setAdapter(myClassifyLeftAdapter);
//点击事件,当点击的时候把获取到的id传过去
lvleft.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//点击获取id的值
Ml = position;
classifyHomePre.setId(list.get(position).getId());
//点击完之后就刷新适配器 不然不显示效果
myClassifyLeftAdapter.notifyDataSetChanged();
}
});
}
//分类右面请求失败
@Override
public void onFailed() {
}
//右边请求数据成功然后配置适配器
@Override
public void onRightSuccess(FenleiRightBean fenleiRightBean) {
List<FenleiRightBean.DataBean> data = fenleiRightBean.getData();
myRightTextAdapter = new MyRightTextAdapter(data, getContext());
rightlist.setAdapter(myRightTextAdapter);
}
//右面请求失败
@Override
public void onRightFailed(String message) {
}
@Override
public void onNameSuccess(String msg, Btn_Login.DataBean data) {
}
@Override
public void onNameFailed(String message) {
}
@Override
public void onPasswordSuccess(String msg) {
}
@Override
public void onPasswordFailed(String message) {
}
}
左侧适配器 ietm一个 text
package com.bwie.newjingd.adapter;
import android.content.Context;
import android.graphics.Color;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.bwie.newjingd.R;
import com.bwie.newjingd.bean.Fenlei;
import com.bwie.newjingd.fragment.ClassifyFragment;
import java.util.List;
/**
* Created by 老北城 on 2017/12/12.
* 分类页面左边的适配器
*/
public class MyClassifyLeftAdapter extends BaseAdapter {
private Context context;
private List<Fenlei> list;
public MyClassifyLeftAdapter(Context context, List<Fenlei> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//适配器的优化
ViewHolder holder;
if (convertView == null) {
convertView = View.inflate(context, R.layout.classify_leftlayout, null);
holder = new ViewHolder();
holder.text = (TextView) convertView.findViewById(R.id.text_class);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.text.setText(list.get(position).getName());
//点击按照下标更换颜色
if (position == ClassifyFragment.Ml) {
convertView.setBackgroundColor(Color.GRAY);
holder.text.setTextColor(Color.RED);
} else {
convertView.setBackgroundColor(Color.WHITE);
holder.text.setTextColor(Color.BLACK);
}
//返回视图
return convertView;
}
class ViewHolder {
TextView text;
}
}
右侧适配器
package com.bwie.newjingd.adapter;
import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import android.widget.Toast;
import com.bwie.newjingd.R;
import com.bwie.newjingd.bean.FenleiRightBean;
import com.bwie.newjingd.v.Main_Fen_Show;
import java.util.List;
import static android.R.id.list;
/**
* Created by 老北城 on 2017/12/14.
* 分类页面右面标题的适配器
*/
public class MyRightTextAdapter extends BaseAdapter implements MyRightRcAdapter.OnItemClickListener {
private List<FenleiRightBean.DataBean> data;
private Context context;
private MyRightRcAdapter myRightRcAdapter;
private String name;
private List<FenleiRightBean.DataBean.ListBean> list;
public MyRightTextAdapter(List<FenleiRightBean.DataBean> data, Context context) {
this.data = data;
this.context = context;
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return data.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = View.inflate(context, R.layout.classify_right_text, null);
holder = new ViewHolder();
holder.text = (TextView) convertView.findViewById(R.id.right_text);
holder.rc = (RecyclerView) convertView.findViewById(R.id.right_rc);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.text.setText(data.get(position).getName());
holder.rc.setLayoutManager(new GridLayoutManager(context, 3, GridLayoutManager.VERTICAL, false));
myRightRcAdapter = new MyRightRcAdapter(data.get(position).getList(), context);
final List<FenleiRightBean.DataBean.ListBean> listBeen = data.get(position).getList();
holder.rc.setAdapter(myRightRcAdapter);
myRightRcAdapter.setOnItemClickListener(new MyRightRcAdapter.OnItemClickListener() {
@Override
public void setOnItemClick(View view, int position) {
//点击传送页面进行传值在那面展示数据
Intent intent=new Intent(context, Main_Fen_Show.class);
intent.putExtra("id",listBeen.get(position).getPscid()+"");
context.startActivity(intent);
}
@Override
public void setOnItemLongClick(View view, int position) {
}
});
return convertView;
}
@Override
public void setOnItemClick(View view, int position) {
}
@Override
public void setOnItemLongClick(View view, int position) {
}
class ViewHolder {
TextView text;
RecyclerView rc;
}
}
右侧适配器 布局 classify_right_text
商品详情iemt<?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:orientation="vertical"> <TextView android:id="@+id/right_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="20dp" android:layout_marginTop="30dp" android:textSize="20sp" /> <android.support.v7.widget.RecyclerView android:id="@+id/right_rc" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="15dp" android:background="#FFFFFF"></android.support.v7.widget.RecyclerView> </LinearLayout>
点击右侧进入商品详情
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.bwie.newjingd.v.Main_Fen_Show">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="返回"
android:textSize="18sp"
android:padding="10dp"
android:id="@+id/xianshi_back"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="子分类详情页面"
android:padding="10dp"
android:textColor="#F00"
android:layout_centerHorizontal="true"/>
<View
android:layout_below="@id/xianshi_back"
android:layout_width="match_parent"
android:layout_height="3dp"
android:background="#D84C29"/>
<android.support.v7.widget.RecyclerView
android:layout_below="@id/xianshi_back"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/rc"></android.support.v7.widget.RecyclerView>
</RelativeLayout>
商品详情 active
package com.bwie.newjingd.v;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.Toast;
import com.bwie.newjingd.R;
import com.bwie.newjingd.adapter.MySearchShowAdapter;
import com.bwie.newjingd.bean.Fen_Book;
import com.bwie.newjingd.bean.Jia_Bean;
import com.bwie.newjingd.bean.Xiangqing;
import com.bwie.newjingd.presenter.FenSouPresenter;
import java.util.List;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class Main_Fen_Show extends AppCompatActivity implements IFenSouView {
private FenSouPresenter fenSouPresenter;
private MySearchShowAdapter mySearchShowAdapter;
private RecyclerView rc;
private String id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main__fen__show);
ButterKnife.bind(this);
rc = (RecyclerView) findViewById(R.id.rc);
Intent intent = getIntent();
String id = intent.getStringExtra("id");
fenSouPresenter = new FenSouPresenter(this);
fenSouPresenter.getPid(id);
}
@Override
public void onSuccess(List<Fen_Book> list) {
}
@Override
public void onFailed() {
}
@Override
public void onNameSuccess(String msg) {
}
@Override
public void onNameFailed(String message) {
}
@Override
public void onItemSuccess(final List<Xiangqing> list) {
if (list.size() > 0) {
rc.setLayoutManager(new GridLayoutManager(Main_Fen_Show.this, 1, GridLayoutManager.VERTICAL, false));
mySearchShowAdapter = new MySearchShowAdapter(Main_Fen_Show.this, list);
rc.setAdapter(mySearchShowAdapter);
mySearchShowAdapter.setOnItemClickListener(new MySearchShowAdapter.OnItemClickListener() {
@Override
public void setOnItemClick(View view, int position) {
Intent intent = new Intent(Main_Fen_Show.this, Main_show_jia.class);
intent.putExtra("id", list.get(position).getPid());
startActivity(intent);
}
@Override
public void setOnItemLongClick(View view, int position) {
}
});
} else {
Toast.makeText(Main_Fen_Show.this, "这个里面没有数据", Toast.LENGTH_SHORT).show();
finish();
}
}
@Override
public void onItemFailed(String message) {
}
@Override
public void onItemJiaSuccess(List<Jia_Bean> list) {
}
@Override
public void onItemJiaFailed(String message) {
}
@Override
public void onCarSuccess(String msg) {
}
@Override
public void onCaeFailed(String message) {
}
@OnClick(R.id.xianshi_back)
public void onViewClicked() {
finish();
}
}
商品详情页
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.bwie.newjingd.v.Main_show_jia">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:padding="10dp"
android:id="@+id/back_jia"
android:text="返回"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:layout_centerHorizontal="true"
android:padding="10dp"
android:text="商品详情页"/>
<View
android:layout_width="match_parent"
android:layout_height="3dp"
android:layout_below="@id/back_jia"
android:background="#D84C29"
/>
<android.support.v4.view.ViewPager
android:layout_below="@id/back_jia"
android:layout_marginTop="5dp"
android:id="@+id/img"
android:layout_width="match_parent"
android:layout_height="300dp" />
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/img" />
<TextView
android:id="@+id/textprice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/text"
android:textColor="#F00" />
<RelativeLayout
android:layout_below="@id/textprice"
android:background="#EBEBEB"
android:layout_width="match_parent"
android:layout_height="100dp">
<TextView
android:layout_marginTop="20dp"
android:id="@+id/textaddress"
android:layout_marginLeft="30dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="收货地址:请选择"/>
</RelativeLayout>
<Button
android:id="@+id/fen_btn_jia"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:background="#F00"
android:text="加入购物车" />
</RelativeLayout>
商品详细页面
package com.bwie.newjingd.v;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.bwie.newjingd.R;
import com.bwie.newjingd.adapter.MyseaImgAdapter;
import com.bwie.newjingd.bean.AddressSel;
import com.bwie.newjingd.bean.Fen_Book;
import com.bwie.newjingd.bean.Jia_Bean;
import com.bwie.newjingd.bean.MorenAddress;
import com.bwie.newjingd.bean.Xiangqing;
import com.bwie.newjingd.presenter.AddressPresenter;
import com.bwie.newjingd.presenter.FenSouPresenter;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
public class Main_show_jia extends AppCompatActivity implements IFenSouView, IViewAddress {
@BindView(R.id.text)
TextView text;
@BindView(R.id.textprice)
TextView textprice;
@BindView(R.id.fen_btn_jia)
Button fenBtnJia;
@BindView(R.id.textaddress)
TextView textaddress;
@BindView(R.id.back_jia)
TextView backJia;
// private RecyclerView rc;
private int id;
private FenSouPresenter fenSouPresenter;
private String uid;
private Jia_Bean jia_bean;
private ViewPager imgview;
private AddressPresenter addressPresenter;
private SharedPreferences myselfs;
private SharedPreferences sharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_show_jia);
ButterKnife.bind(this);
imgview = (ViewPager) findViewById(R.id.img);
Intent intent = getIntent();
int id = intent.getIntExtra("id", this.id);
fenSouPresenter = new FenSouPresenter(this);
fenSouPresenter.getPidJia(id + "");
sharedPreferences = getSharedPreferences("myself", MODE_PRIVATE);
addressPresenter = new AddressPresenter(this);
addressPresenter.morendizhi(sharedPreferences.getString("uid", null));
backJia.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
@Override
protected void onResume() {
super.onResume();
addressPresenter = new AddressPresenter(this);
addressPresenter.morendizhi(sharedPreferences.getString("uid", null));
}
@Override
public void onSuccess(List<Fen_Book> list) {
}
@Override
public void onFailed() {
}
@Override
public void onNameSuccess(String msg) {
}
@Override
public void onNameFailed(String message) {
}
@Override
public void onItemSuccess(List<Xiangqing> list) {
}
@Override
public void onItemFailed(String message) {
}
@Override
public void onItemJiaSuccess(List<Jia_Bean> list) {
for (int i = 0; i < list.size(); i++) {
jia_bean = list.get(i);
String img = jia_bean.getImg();
String[] split = img.split("\\|");
imgview.setAdapter(new MyseaImgAdapter(Main_show_jia.this, split));
text.setText(jia_bean.getTitle());
textprice.setText(jia_bean.getPrice() + "");
}
//加入购物车
SharedPreferences myself = getSharedPreferences("myself", MODE_PRIVATE);
uid = myself.getString("uid", null);
fenSouPresenter = new FenSouPresenter(this);
fenBtnJia.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fenSouPresenter.getCar(uid, jia_bean.getPid());
}
});
boolean state = sharedPreferences.getBoolean("state", true);
if(state){
}else{
textaddress.setText("登陆以后才可以获取地址");
}
textaddress.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean state = sharedPreferences.getBoolean("state", true);
if(state){
Intent intent = new Intent(Main_show_jia.this, Main_seladdress.class);
startActivity(intent);
}else{
Toast.makeText(Main_show_jia.this, "请先登录", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(Main_show_jia.this, MainLoginMyself.class);
startActivity(intent);
}
}
});
}
@Override
public void onItemJiaFailed(String message) {
}
@Override
public void onCarSuccess(String msg) {
SharedPreferences.Editor edit = sharedPreferences.edit();
boolean state = sharedPreferences.getBoolean("state", true);
if (state) {
Toast.makeText(Main_show_jia.this, msg + "", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(Main_show_jia.this, "请先登录", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(Main_show_jia.this, MainLoginMyself.class);
startActivity(intent);
}
}
@Override
public void onCaeFailed(String message) {
Toast.makeText(Main_show_jia.this, message, Toast.LENGTH_SHORT).show();
}
@Override
public void onSelAddressSucc(List<AddressSel.DataBean> data) {
}
@Override
public void onSelAddressFail(String message) {
}
@Override
public void onInsertSuccess(String msg) {
}
@Override
public void onInsertFailed(String message) {
}
@Override
public void onMorenSuccess(String msg) {
}
@Override
public void onMorenFailed(String message) {
}
@Override
public void onUpdateSuccess(String msg) {
}
@Override
public void onUpdateFailed(String message) {
}
@Override
public void onDeMorenSuccess(MorenAddress.DataBean data) {
textaddress.setText("默认地址:" + data.getName() + " -- " + data.getAddr());
}
@Override
public void onDeMorenFailed(String message) {
}
}