我的订单 . 我的收藏 我的消息
一.我的订单页面
/**
* Created by asus on 2016/11/2.
*/
public class MyOrderActivity extends AppCompatActivity implements TabLayout.OnTabSelectedListener {
public static final int STATUS_ALL=1000;
public static final int STATUS_SUCCESS=1; //支付成功的订单
public static final int STATUS_PAY_FAIL=-2; //支付失败的订单
public static final int STATUS_PAY_WAIT=0; //:待支付的订单
private int status = STATUS_ALL;
@ViewInject(R.id.toolbar)
private CnToolbar mToolbar;
@ViewInject(R.id.tab_layout)
private TabLayout mTablayout;
@ViewInject(R.id.recycler_view)
private RecyclerView mRecyclerview;
private OkHttpHelper okHttpHelper = OkHttpHelper.getInstance();
private MyOrderAdapter myOrderAdapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_order);
ViewUtils.inject(this);
initToolBar();
initTab();
getOrders();
}
//获取用户id和成功失败状态
private void getOrders() {
Long userId = MyApplication.getInstance().getUser().getId();
HashMap<String, Object> params = new HashMap<>();
params.put("user_id",userId);
params.put("status",status);
okHttpHelper.post(Contants.API.ORDER_LIST, params, new SpotsCallBack<List<Order>>(this,true){
@Override
public void onSuccess(Response response, List<Order> orders) {
showOrders(orders);
}
@Override
public void onError(Response response, int code, Exception e) {
}
});
}
//显示九宫格图片
private void showOrders(List<Order> orders) {
if(myOrderAdapter ==null) {
myOrderAdapter = new MyOrderAdapter(orders, this);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setStackFromEnd(true);//设置反转之后列表从上面开始展示
linearLayoutManager.setReverseLayout(true);//反转
mRecyclerview.setLayoutManager(linearLayoutManager);
// mRecyclerview.addItemDecoration(new DividerGridItemDecoration(this));
// mRecyclerview.addItemDecoration(new CardViewtemDecortion());
mRecyclerview.addItemDecoration(new DividerItemDecortion(10, 5, 5, 0));
mRecyclerview.setAdapter(myOrderAdapter);
} else {
myOrderAdapter.refreshData(orders);
mRecyclerview.setAdapter(myOrderAdapter);
}
}
private void initTab() {
TabLayout.Tab tab= mTablayout.newTab();
tab.setText("全部");
tab.setTag(STATUS_ALL);
mTablayout.addTab(tab);
tab= mTablayout.newTab();
tab.setText("支付成功");
tab.setTag(STATUS_SUCCESS);
mTablayout.addTab(tab);
tab= mTablayout.newTab();
tab.setText("待支付");
tab.setTag(STATUS_PAY_WAIT);
mTablayout.addTab(tab);
tab= mTablayout.newTab();
tab.setText("支付失败");
tab.setTag(STATUS_PAY_FAIL);
mTablayout.addTab(tab);
mTablayout.setOnTabSelectedListener(this);
}
private void initToolBar() {
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
//tablayout的监听
@Override
public void onTabSelected(TabLayout.Tab tab) {
status = (int) tab.getTag();
getOrders();
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
}
②.适配器代码和九宫格库
/**
* Created by asus on 2016/11/2.
*/
public class MyOrderAdapter extends BaseAdapter<Order,BaseViewHolder> {
public MyOrderAdapter(List<Order> datas, Context context) {
super(datas, context, R.layout.template_my_orders);
}
@Override
public void bindData(BaseViewHolder viewHoder, Order item, int position) {
viewHoder.getTextView(R.id.txt_order_num).setText("订单号:"+item.getOrderNum());
viewHoder.getTextView(R.id.txt_order_money).setText("实付金额: ¥:"+item.getAmount());
TextView txtStatus = viewHoder.getTextView(R.id.txt_status);
switch (item.getStatus()){
case Order.STATUS_SUCCESS:
txtStatus.setText("成功");
txtStatus.setTextColor(Color.parseColor("#ff4CAF50"));
break;
case Order.STATUS_PAY_FAIL:
txtStatus.setText("支付失败");
txtStatus.setTextColor(Color.parseColor("#ffF44336"));
break;
case Order.STATUS_PAY_WAIT:
txtStatus.setText("等待支付");
txtStatus.setTextColor(Color.parseColor("#ffFFEB3B"));
break;
}
//九宫格图片
NineGridlayout nineGridlayout= (NineGridlayout) viewHoder.getView(R.id.iv_ngrid_layout);
nineGridlayout.setGap(5);
nineGridlayout.setDefaultWidth(200);
nineGridlayout.setDefaultHeight(200);
nineGridlayout.setAdapter(new OrderItemAdapter(context,item.getItems()));
}
class OrderItemAdapter extends NineGridAdapter{
private List<OrderItem> items ;
public OrderItemAdapter(Context context, List<OrderItem> items) {
super(context, items);
this.items = items;
}
@Override
public int getCount() {
return (items == null) ? 0 : items.size();
}
@Override
public String getUrl(int positopn) {
OrderItem item = getItem(positopn);
return item.getWares().getImgUrl();
}
@Override
public OrderItem getItem(int position) {
return (items == null) ? null : items.get(position);
}
@Override
public long getItemId(int position) {
OrderItem item = getItem(position);
return item==null?0:item.getId();
}
@Override
public View getView(int i, View view) {
ImageView iv = new ImageView(context);
iv.setScaleType(ImageView.ScaleType.CENTER_CROP);
iv.setBackgroundColor(Color.parseColor("#f5f5f5"));
Picasso.with(context).load(getUrl(i)).placeholder(new ColorDrawable(Color.parseColor("#f5f5f5"))).into(iv);
return iv;
}
}
}
二.我的收藏
package com.example.laoluo.play;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import com.example.laoluo.play.Contant.Contants;
import com.example.laoluo.play.adapter.BaseAdapter;
import com.example.laoluo.play.adapter.MyFavoriteAdapter;
import com.example.laoluo.play.bean2.Wares;
import com.example.laoluo.play.bean3.BaseRespMsg;
import com.example.laoluo.play.bean4.Favorites;
import com.example.laoluo.play.http.OkHttpHelper;
import com.example.laoluo.play.http.SpotsCallBack;
import com.example.laoluo.play.utils.ToastUtil;
import com.example.laoluo.play.widget.CardViewtemDecortion;
import com.example.laoluo.play.widget.CnToolbar;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.util.LogUtils;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.squareup.okhttp.Response;
import java.util.HashMap;
import java.util.List;
/**
* Created by asus on 2016/11/3.
*/
public class MyFavoriteActivity extends AppCompatActivity {
@ViewInject(R.id.toolbar)
private CnToolbar mToolbar;
@ViewInject(R.id.recycler_view)
private RecyclerView mRecyclerview;
private MyFavoriteAdapter mAdapter;
private OkHttpHelper okHttpHelper = OkHttpHelper.getInstance();
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_favorite);
ViewUtils.inject(this);
initToolBar();
getFavorites();
}
private void initToolBar() {
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
private void getFavorites() {
Long userId = MyApplication.getInstance().getUser().getId();
HashMap<String, Object> params = new HashMap<>();
params.put("user_id", userId);
okHttpHelper.get(Contants.API.FAVORITE_LIST, params, new SpotsCallBack<List<Favorites>>(this, false) {
@Override
public void onSuccess(Response response, List<Favorites> favorites) {
showFavorites(favorites);
}
@Override
public void onError(Response response, int code, Exception e) {
LogUtils.d("code:" + code);
}
});
}
private void showFavorites(final List<Favorites> favorites) {
if(mAdapter==null) {
mAdapter = new MyFavoriteAdapter(favorites, this);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setStackFromEnd(true);//设置反转之后列表从上面开始展示
linearLayoutManager.setReverseLayout(true);//反转
mRecyclerview.setLayoutManager(linearLayoutManager);
mRecyclerview.addItemDecoration(new CardViewtemDecortion());//装饰
mRecyclerview.setItemAnimator(new DefaultItemAnimator());//动画
mRecyclerview.setAdapter(mAdapter);
}else{
mAdapter.refreshData(favorites);
mRecyclerview.setAdapter(mAdapter);
}
mAdapter.setHotClickListener(new BaseAdapter.OnHotClickListener() {
@Override
public void onclick(View view, int position) {
ToastUtil.showToast(MyFavoriteActivity.this, "想买吗,加入购物车吧!");
}
});
//删除收藏
mAdapter.setOndeleteListener(new MyFavoriteAdapter.OndeleteListenter() {
@Override
public void delete(Wares wares, final int position) {
HashMap<String,Object> params = new HashMap<>();
params.put("id",favorites.get(position).getId());
okHttpHelper.post(Contants.API.FAVORITE_DEL, params, new SpotsCallBack<BaseRespMsg>(MyFavoriteActivity.this,false) {
@Override
public void onSuccess(Response response, BaseRespMsg baseRespMsg) {
if(baseRespMsg.getStatus()==BaseRespMsg.STATUS_SUCCESS) {
mAdapter.notifyItemRemoved(position);
getFavorites();
}
}
@Override
public void onError(Response response, int code, Exception e) {
}
});
}
});
}
@Override
protected void onResume() {
super.onResume();
getFavorites();
}
}
②.适配器
/**
* Created by asus on 2016/11/4.
*/
public class MyFavoriteAdapter extends BaseAdapter<Favorites,BaseViewHolder> {
private Context context;
public MyFavoriteAdapter(List<Favorites> datas, Context context) {
super(datas, context, R.layout.template_favorite);
this.context = context;
}
@Override
public void bindData(final BaseViewHolder holder, Favorites favorites, final int position) {
SimpleDraweeView imageView = (SimpleDraweeView) holder.getImageView(R.id.drawee_view);
imageView.setImageURI(Uri.parse(favorites.getWares().getImgUrl()));
holder.getTextView(R.id.text_title).setText(favorites.getWares().getName());
holder.getTextView(R.id.text_price).setText(favorites.getWares().getPrice()+"");
final Button button = holder.getButton(R.id.btn_remove);
final Wares wares = favorites.getWares();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {//FAVORITE_DEL
if (listenter != null) {
listenter.delete(wares, position);
}
}
});
}
private OndeleteListenter listenter;
public void setOndeleteListener(OndeleteListenter listener){
this.listenter = listener;
}
public interface OndeleteListenter{
void delete(Wares wares,int position);
}
}
三.我的消息页面
/**
* Created by asus on 2016/11/5.
*/
public class NoticeActivity extends AppCompatActivity {
@ViewInject(R.id.recycler_view)
private RecyclerView recycler_view;
private MyNotice myNotice;
private List<String> datas;
private List<String> datastwo;
private RelativeLayout relativeLayout;
private EditText et_input;
private Button tv_send_message;
private MynoticeAdapter mynoticeAdapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String content = getIntent().getStringExtra("content");
setContentView(R.layout.activity_notice);
ViewUtils.inject(this);
relativeLayout = (RelativeLayout) findViewById(R.id.sendMessage);
et_input = (EditText) relativeLayout.findViewById(R.id.et_input);
tv_send_message = (Button) relativeLayout.findViewById(R.id.tv_send_message);
myNotice = new MyNotice(this, "notice.db", null, 1);
//保存到数据库
if (!TextUtils.isEmpty(content)) {
saveNoticeLocal(content, null);
}
setEdittext();
setData();
}
//设置edittext数据
private void setEdittext() {
//
tv_send_message.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String text = et_input.getText().toString().trim();
if (text != null) {
saveNoticeLocal(null, text);
et_input.setText("");
setData();
}
}
});
}
//设置显示数据
private void setData() {
getNoticeLocal();
if (mynoticeAdapter == null) {
mynoticeAdapter = new MynoticeAdapter(datas, datastwo, this);
recycler_view.setItemAnimator(new DefaultItemAnimator());
recycler_view.addItemDecoration(new DividerItemDecoration(this, LinearLayoutManager.VERTICAL));
recycler_view.setLayoutManager(new LinearLayoutManager(this));
recycler_view.smoothScrollToPosition(datas.size() > datastwo.size() ? datas.size() : datastwo.size());
recycler_view.setAdapter(mynoticeAdapter);
}else {
mynoticeAdapter = new MynoticeAdapter(datas, datastwo, this);
recycler_view.smoothScrollToPosition(datas.size() > datastwo.size() ? datas.size() : datastwo.size());
recycler_view.setAdapter(mynoticeAdapter);
}
mynoticeAdapter.setOndeleteLongClickListener(new MynoticeAdapter.OndeleteLongClickListener() {
@Override
public void deleteData(int position) {
deleteNoticeLocal(position);
setData();
}
});
}
//获取数据库数据
private void getNoticeLocal() {
SQLiteDatabase readableDatabase = myNotice.getReadableDatabase();
Cursor cursor = readableDatabase.query("notice", null, null, null, null, null, null);
datas = new ArrayList<String>();
datastwo = new ArrayList<String>();
while (cursor.moveToNext()) {
String notice = cursor.getString(cursor.getColumnIndex("content"));
String edittext = cursor.getString(cursor.getColumnIndex("edittext"));
datas.add(notice);
datastwo.add(edittext);
}
cursor.close();
readableDatabase.close();
}
//保存到数据库
public void saveNoticeLocal(String content, String edittext) {
SQLiteDatabase writableDatabase = myNotice.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("content", content);
values.put("edittext", edittext);
writableDatabase.insert("notice", null, values);
writableDatabase.close();
;
}
//删除点击item
public void deleteNoticeLocal(int position) {
SQLiteDatabase writableDatabase = myNotice.getWritableDatabase();
// writableDatabase.delete("notice", "_id = ?", new String[]{position + ""});
writableDatabase.delete("notice", null,null);
writableDatabase.close();
}
}
②.建表
**
* Created by asus on 2016/11/5.
*/
public class MyNotice extends SQLiteOpenHelper {
private Context context;
public MyNotice(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
this.context = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table notice(_id integer primary key autoincrement, content text,edittext text)");
ToastUtil.showToast(context,"创建成功");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
③.根据数据库的数据,显示接收或者发送的消息
/**
* Created by asus on 2016/11/5.
*/
public class MynoticeAdapter extends RecyclerView.Adapter<MynoticeAdapter.MynoticeViewHolder> {
private LayoutInflater mInflater;
private List<String> datas;
private List<String> datastwo;
private Context context;
private PopupWindow popupWindow;
private TextView tvDelete;
public MynoticeAdapter(List<String> datas, List<String> datastwo, Context context) {
this.datas = datas;
this.datastwo = datastwo;
this.context = context;
}
@Override
public MynoticeViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
mInflater = LayoutInflater.from(parent.getContext());
View view = mInflater.inflate(R.layout.item_private_message_chat, parent, false);
return new MynoticeViewHolder(view);
}
@Override
public int getItemCount() {
return datas.size();
}
@Override
public void onBindViewHolder(MynoticeViewHolder holder, int position) {
String data = datas.get(position);
if (data == null) {
holder.layout_left.setVisibility(View.GONE);
} else {
holder.layout_left.setVisibility(View.VISIBLE);
holder.tv_message_from.setText(data);
}
String datatwo = datastwo.get(position);
if (datatwo == null) {
holder.right_layout.setVisibility(View.GONE);
} else {
holder.right_layout.setVisibility(View.VISIBLE);
holder.tv_message_to.setText(datatwo);
}
}
class MynoticeViewHolder extends RecyclerView.ViewHolder implements View.OnLongClickListener {
private LinearLayout layout_left;
private TextView tv_message_from;
private LinearLayout right_layout;
private TextView tv_message_to;
public MynoticeViewHolder(View itemView) {
super(itemView);
layout_left = (LinearLayout) itemView.findViewById(R.id.layout_left);
tv_message_from = (TextView) itemView.findViewById(R.id.tv_message_from);
right_layout = (LinearLayout) itemView.findViewById(R.id.right_layout);
tv_message_to = (TextView) itemView.findViewById(R.id.tv_message_to);
layout_left.setOnLongClickListener(this);
right_layout.setOnLongClickListener(this);
}
@Override
public boolean onLongClick(View v) {
showDialog(v,getLayoutPosition());
return true;
}
}
//展示popo
private void showDialog(View v, final int position) {
if (null == popupWindow) {
View popView = LayoutInflater.from(context).inflate(R.layout.item_pop, null);
tvDelete = (TextView) popView.findViewById(R.id.tv_delete);
tvDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (listener != null) {
listener.deleteData(position);
}
}
});
popupWindow = new PopupWindow(popView, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
popupWindow.setAnimationStyle(R.style.PopAnimStyle);
popupWindow.setOutsideTouchable(true);
popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
}
if (popupWindow.isShowing())
popupWindow.dismiss();
//第一次显示控件的时候宽高会为0
int deleteHeight = tvDelete.getHeight() == 0 ? 130 : tvDelete.getHeight();
int deleteWidth = tvDelete.getWidth() == 0 ? 212 : tvDelete.getWidth();
int[] location = new int[2];
v.getLocationOnScreen(location);
popupWindow.showAtLocation(v, Gravity.NO_GRAVITY, location[0], location[1]-popupWindow.getHeight());
// popupWindow.showAsDropDown(v, (v.getWidth() - deleteWidth) / 2, -v.getHeight() - deleteHeight);
}
//接口监听
private OndeleteLongClickListener listener;
public void setOndeleteLongClickListener(OndeleteLongClickListener listener) {
this.listener = listener;
}
public interface OndeleteLongClickListener {
void deleteData(int position);
}
}