package com.bigdo.app; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import org.json.JSONArray; import org.json.JSONObject; import com.bigdo.common.BDSQLiteHelper; import com.bigdo.common.Login; import com.bigdo.common.RConfig; import com.bigdo.common.RState; import com.bigdo.common.User; import com.bigdo.controls.IXListViewListener; import com.bigdo.controls.XListView; import com.bigdo.util.WSCheck; import com.bigdo.util.WSHelper; import com.bigdo.util.WSResult; import android.annotation.SuppressLint; import android.app.Activity; import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.ScrollView; import android.widget.SimpleAdapter; import android.widget.TextView; public class Me_PointsManage_Activity extends BaseActivity implements IXListViewListener { LinearLayout tab1; View tab_line1, tab_line2; RelativeLayout vdieo_tag_1, vdieo_tag_2; XListView point_list; ArrayList<HashMap<String, Object>> data; PointAdapter ad; RelativeLayout tab2; boolean isFrist = true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.me_pointsmanage_activity); View activityTitle = (View) this.findViewById(R.id.bd_title_host); TextView bd_title_name = (TextView) activityTitle .findViewById(R.id.bd_title_name); bd_title_name.setText("积分管理"); TextView bd_title_operate = (TextView) activityTitle .findViewById(R.id.bd_title_operate); bd_title_operate.setVisibility(View.INVISIBLE); ImageButton bd_title_back = (ImageButton) activityTitle .findViewById(R.id.bd_title_back); bd_title_back.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Me_PointsManage_Activity.this.finish(); } }); OnClickListener switchTab = new OnClickListener() { @Override public void onClick(View arg0) { setTab((Integer) arg0.getTag()); } }; data = new ArrayList<HashMap<String, Object>>(); ad = new PointAdapter(this); point_list = (XListView) findViewById(R.id.point_list); point_list.setXListViewListener(this); point_list.setPullLoadEnable(false); point_list.setAdapter(ad); tab_line1 = findViewById(R.id.vdieo_tag_1_vline); tab_line2 = findViewById(R.id.vdieo_tag_2_vline); tab1 = (LinearLayout) findViewById(R.id.tab_obj_1); tab2 = (RelativeLayout) findViewById(R.id.tab_obj_2); vdieo_tag_1 = (RelativeLayout) findViewById(R.id.vdieo_tag_1); vdieo_tag_2 = (RelativeLayout) findViewById(R.id.vdieo_tag_2); vdieo_tag_1.setTag(1); vdieo_tag_2.setTag(2); vdieo_tag_1.setOnClickListener(switchTab); vdieo_tag_2.setOnClickListener(switchTab); } private void setTab(int tag) { tab1.setVisibility(View.GONE); tab2.setVisibility(View.GONE); switch (tag) { case 1: tab2.setVisibility(RelativeLayout.GONE); point_list.setVisibility(XListView.GONE); tab1.setVisibility(LinearLayout.VISIBLE); tab_line1.setBackgroundColor(0xffC0C280); tab_line2.setBackgroundColor(0x77cbcbcb); break; case 2: if (isFrist) { isFrist = false; getPoint(); if (data.size() <= 0) { point_list.startAutoHeightRefresh(1); } } tab1.setVisibility(LinearLayout.GONE); point_list.setVisibility(XListView.VISIBLE); tab2.setVisibility(RelativeLayout.VISIBLE); tab_line1.setBackgroundColor(0x77cbcbcb); tab_line2.setBackgroundColor(0xffC0C280); break; default: break; } } @Override public void onVideoBroadcast(Intent intent) { // TODO Auto-generated method stub } @Override public void onClearData() { // TODO Auto-generated method stub } private void startGetData() { User user = Login.get(this); if (user != null) { JSONObject jparam = new JSONObject(); try { jparam.put("user", user.user); } catch (Exception e) { point_list.stopRefresh(); showInfo("准备请求参数出错."); return; } String data = jparam.toString(); String url = RConfig.getPoint(this); WSHelper ws = new WSHelper(this, "", false, handler, url, "", WSHelper.getStringEntity(data), 0, 0, 0, 0, WSHelper.POST); ws.start(); // Log.e("startGetData", url); // Log.e("startGetData_data", data); } else { showInfo("请先登录"); } } @SuppressLint("HandlerLeak") protected Handler handler = new Handler() { public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.arg1 == RState.WSCall) { point_list.stopRefresh(); WSResult result = (WSResult) msg.getData().getParcelable( WSResult.ResultKey); update(result); getPoint(); } } }; private void getPoint() { User user = Login.get(this); if (user != null && data != null && ad != null) { data.clear(); BDSQLiteHelper sqlobj = null; SQLiteDatabase sqlobj_r = null; Cursor cu = null; try { sqlobj = new BDSQLiteHelper(this); sqlobj_r = sqlobj.getReadableDatabase(); cu = sqlobj_r.rawQuery("select * from point where user = ? order by createtime desc", new String[] { user.user }); while (cu.moveToNext()) { HashMap<String, Object> mp = new HashMap<String, Object>(); mp.put("idpoint", cu.getInt(cu.getColumnIndex("idpoint"))); mp.put("point", cu.getInt(cu.getColumnIndex("point"))); mp.put("pointdesc", cu.getString(cu.getColumnIndex("pointdesc"))); mp.put("createtime", cu.getString(cu.getColumnIndex("createtime"))); data.add(mp); } } catch (Exception e) { } ad.notifyDataSetChanged(); } } private void update(WSResult result) { User user = Login.get(this); if (user != null) { JSONObject jresult = WSCheck.Json(this, result); if (jresult != null) { BDSQLiteHelper sqlobj = null; SQLiteDatabase sqlobj_w = null; Cursor cu = null; try { sqlobj = new BDSQLiteHelper(this); sqlobj_w = sqlobj.getWritableDatabase(); try { sqlobj_w.delete("point", null, null); } catch (Exception e) { } JSONArray item = jresult.getJSONArray("item"); if (item != null) { int lg = item.length(); if (lg > 0) { for (int i = 0; i < lg; i++) { JSONObject vo = (JSONObject) item.opt(i); if (vo != null) { int idpoint = vo.getInt("idpoint"); int point = vo.getInt("point"); String pointdesc = vo .getString("pointdesc"); String createtime = vo .getString("createtime"); ContentValues cv = new ContentValues(); cv.put("user", user.user); cv.put("idpoint", idpoint); cv.put("point", point); cv.put("pointdesc", pointdesc); cv.put("createtime", createtime); cu = sqlobj_w .rawQuery( "select idpoint from point where (idpoint = ?) ", new String[] { idpoint + "" }); int c = cu.getCount(); try { if (cu != null) { cu.close(); } } catch (Exception ex) { } cu = null; if (c <= 0) { sqlobj_w.insert("point", "", cv); } else { cv.remove("idpoint"); sqlobj_w.update("point", cv, "(idpoint = ?)", new String[] { idpoint + "" }); } } } } } } catch (Exception e) { } try { if (cu != null) { cu.close(); cu = null; } } catch (Exception ex) { } try { if (sqlobj_w != null) { sqlobj_w.close(); sqlobj_w = null; } } catch (Exception ex) { } try { if (sqlobj != null) { sqlobj.close(); sqlobj = null; } } catch (Exception ex) { } } } } @Override public void onRefresh(XListView xListView, int tag, int requestCode) { // TODO Auto-generated method stub startGetData(); } @Override public void onLoadMore(XListView xListView, int tag, int requestCode) { // TODO Auto-generated method stub } public class PointAdapter extends BaseAdapter { private LayoutInflater mInflater; public PointAdapter(Context context) { this.mInflater = LayoutInflater.from(context); } @Override public int getCount() { // TODO Auto-generated method stub if (data != null) { return data.size(); } return 0; } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub if (data != null) { return data.get(arg0); } return null; } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return arg0; } @Override public View getView(int arg0, View arg1, ViewGroup arg2) { Holder holder = null; if (arg1 == null) { holder = new Holder(); arg1 = mInflater.inflate(R.layout.point_item, null); holder.vline = arg1.findViewById(R.id.point_item_vline); holder.point = (TextView) arg1.findViewById(R.id.point); holder.pointdesc = (TextView) arg1.findViewById(R.id.pointdesc); holder.createtime = (TextView) arg1 .findViewById(R.id.createtime); arg1.setTag(holder); } else { holder = (Holder) arg1.getTag(); } if (arg0 == 0 || arg0 == data.size()) { holder.vline.setVisibility(View.GONE); } else { holder.vline.setVisibility(View.VISIBLE); } Map<String, Object> mp = data.get(arg0); holder.point .setText((mp.get("point") != null ? (mp.get("point") + " 积分") : "")); holder.pointdesc .setText((mp.get("pointdesc") != null ? ((String) mp .get("pointdesc")) : "")); holder.createtime .setText((mp.get("createtime") != null ? ((String) mp .get("createtime")) : "")); return arg1; } private class Holder { TextView point, pointdesc, createtime; View vline; } } }