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;
}
}
}