package com.stone.shop.view; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import android.widget.Toast; import cn.bmob.v3.BmobQuery; import cn.bmob.v3.BmobUser; import cn.bmob.v3.listener.CountListener; import com.stone.date.MessageDef; import com.stone.shop.R; import com.stone.shop.adapter.MineListAdapter; import com.stone.shop.model.Order; /** * 个人中心主界面 * @date 2014-4-24 * @author Stone */ public class MineActivity extends Activity implements OnItemClickListener{ @SuppressWarnings("unused") private static final String TAG = "MineActivity" ; private String[] userItemNames = {"stonekity"} ; private String[] userItemContents = {""} ; private String[] orderItemNames = {"当前订单", "历史订单"}; private String[] orderItemContents = {"*", ""}; private String[] aboutItemNames = {"通知中心", "软件相关", "推荐给朋友", "退出账号"}; private String[] aboutItemContents = {"", "", "", ""}; private int[] userImgIds = {R.drawable.ic_menu_myplaces}; private int[] orderImgIds = {R.drawable.ic_menu_find_holo_light, R.drawable.ic_menu_copy_holo_light}; private int[] aboutImgIds = {R.drawable.ic_menu_notifications, R.drawable.ic_menu_info_details, R.drawable.ic_menu_share, R.drawable.ic_star_yes}; private ListView lvMineUser; private ListView lvMineOrder; private ListView lvMineAbout; private MineListAdapter userListAdapter; private MineListAdapter orderListAdapter; private MineListAdapter aboutListAdapter; private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case MessageDef.MINE_FINISH_LOAD_DATA: //toast("Handler 收到数据加载完成的消息"); orderListAdapter.notifyDataSetChanged(); break; default: break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_mine); initData("已取餐"); initData("未取餐"); initView(); } private void initView() { lvMineUser = (ListView) findViewById(R.id.lv_mine_user); lvMineOrder = (ListView) findViewById(R.id.lv_mine_order); lvMineAbout = (ListView) findViewById(R.id.lv_mine_about); userListAdapter = new MineListAdapter(this, userItemNames, userItemContents, userImgIds); orderListAdapter = new MineListAdapter(this, orderItemNames, orderItemContents, orderImgIds); aboutListAdapter = new MineListAdapter(this, aboutItemNames, aboutItemContents, aboutImgIds); lvMineUser.setAdapter(userListAdapter); lvMineOrder.setAdapter(orderListAdapter); lvMineAbout.setAdapter(aboutListAdapter); lvMineUser.setOnItemClickListener(this); lvMineOrder.setOnItemClickListener(this); lvMineAbout.setOnItemClickListener(this); } //初始化列表菜单中数据 public void initData(final String type) { //获取用户 BmobUser user = BmobUser.getCurrentUser(this); userItemNames[0] = user.getUsername(); //获取小菜订单(数量) BmobQuery<Order> query = new BmobQuery<Order>(); query.order("-updatedAt"); query.addWhereEqualTo("userName", user.getUsername()); query.addWhereEqualTo("state", type); query.count(this, Order.class, new CountListener() { @Override public void onSuccess(int count) { if(type.equals("未取餐")) { orderItemContents[0] ="( " +count+ " )"; } if(type.equals("已取餐")) { orderItemContents[1] ="( " +count+ " )"; } Message msg = new Message(); msg.what = MessageDef.MINE_FINISH_LOAD_DATA; mHandler.sendMessage(msg); } @Override public void onFailure(int arg0, String arg1) { toast("查询失败"); } }); } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //个人资料 if(parent.getId() == R.id.lv_mine_user) { switch (position) { case 0: //资料卡 //toast("点击个人资料"); Intent toMineInfo = new Intent(MineActivity.this, MineInfoActivity.class); startActivity(toMineInfo); break; default: break; } } //小菜订单 if(parent.getId() == R.id.lv_mine_order) { //toast("点击了订单区域"); Intent toOrderInfo; switch (position) { case 0: toOrderInfo = new Intent(MineActivity.this, OrderInfoActivity.class); toOrderInfo.putExtra("type", "now"); startActivity(toOrderInfo); break; case 1: toOrderInfo = new Intent(MineActivity.this, OrderInfoActivity.class); toOrderInfo.putExtra("type", "old"); startActivity(toOrderInfo); break; default: break; } } //其他 if(parent.getId() == R.id.lv_mine_about) { switch (position) { case 1: //软件相关 Intent toMineSoft = new Intent(MineActivity.this, MineSoftActivity.class); startActivity(toMineSoft); break; case 2: //推荐给朋友 Intent toShare = new Intent(Intent.ACTION_SEND); toShare.setType("text/plain"); toShare.putExtra(Intent.EXTRA_SUBJECT, "分享"); toShare.putExtra(Intent.EXTRA_TEXT, "校园小菜-HBUT版" +"\n" + "针对湖工大的校园小菜测试版上线了,赶紧下载体验吧" + "http://xiaocai.bmob.cn"); startActivity(Intent.createChooser(toShare, "分享到")); break; case 3: //退出当期账号 BmobUser.logOut(this); Intent toLogin = new Intent(MineActivity.this, LoginActivity.class); startActivity(toLogin); finish(); break; default: //toast("点击了通知区域"); break; } } } private void toast(String toast) { Toast.makeText(this, toast, Toast.LENGTH_SHORT).show(); } }