package com.fanxin.app.fx;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.fanxin.app.Constant;
import com.fanxin.app.MYApplication;
import com.fanxin.app.R;
import com.fanxin.app.activity.BaseActivity;
import com.fanxin.app.db.ACache;
import com.fanxin.app.fx.others.LoadDataFromServer;
import com.fanxin.app.fx.others.LocalUserInfo;
import com.fanxin.app.fx.others.LoadDataFromServer.DataCallBack;
public class MoneyTradeActivity extends BaseActivity {
private String firstCard;
private TextView tv_cardID;
private boolean isWithdraw = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_money_trade);
initView();
}
private void initView() {
isWithdraw = this.getIntent().getBooleanExtra("isWithdraw", false);
TextView tv_title = (TextView) this.findViewById(R.id.tv_title);
if (isWithdraw) {
tv_title.setText("零钱提现");
} else {
tv_title.setText("零钱充值");
}
JSONArray jsons = ACache.get(getApplicationContext()).getAsJSONArray(
Constant.CARDLIST);
final List<Map<String, String>> nameList = new ArrayList<Map<String, String>>();// 建立一个数组存储listview上显示的数据
// for (int m = 0; m < initData.size(); m++) {//initData为一个list类型的数据源
//
// }
if (jsons != null && jsons.size() != 0) {
for (int i = 0; i < jsons.size(); i++) {
JSONObject json = jsons.getJSONObject(i);
String number = json.getString("cardID");
if (i == 0) {
firstCard = number;
}
Map<String, String> nameMap = new HashMap<String, String>();
nameMap.put("name", number);
nameList.add(nameMap);
}
}
tv_cardID = (TextView) this.findViewById(R.id.tv_cardID);
tv_cardID.setText(firstCard);
final EditText et_money = (EditText) this.findViewById(R.id.et_money);
Button btn_ok = (Button) this.findViewById(R.id.btn_ok);
btn_ok.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String money = et_money.getText().toString().trim();
if (money == null) {
Toast.makeText(getApplicationContext(), "请输入金额",
Toast.LENGTH_SHORT).show();
return;
}
if (!isFloathString(money) && !isNumberString(money)) {
Toast.makeText(getApplicationContext(), "请输入正确的金额",
Toast.LENGTH_SHORT).show();
return;
}
if (!isWithdraw) {
recharge(firstCard, money);
} else {
withdraws(firstCard, money);
}
}
});
RelativeLayout re_click = (RelativeLayout) this
.findViewById(R.id.re_click);
re_click.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
chooseCard(nameList);
}
});
}
public boolean isFloathString(String testString) {
if (!testString.contains(".")) {
return isNumberString(testString);
} else {
String[] floatStringPartArray = testString.split("\\.");
if (floatStringPartArray.length == 2) {
if (true == isNumberString(floatStringPartArray[0])
&& true == isNumberString(floatStringPartArray[1]))
return true;
else
return false;
} else
return false;
}
}
private boolean isNumberString(String testString) {
String numAllString = "0123456789";
if (testString.length() <= 0)
return false;
for (int i = 0; i < testString.length(); i++) {
String charInString = testString.substring(i, i + 1);
if (!numAllString.contains(charInString))
return false;
}
return true;
}
private void chooseCard(final List<Map<String, String>> nameList) {
LinearLayout linearLayoutMain = new LinearLayout(this);// 自定义一个布局文件
linearLayoutMain.setLayoutParams(new LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
ListView listView = new ListView(this);// this为获取当前的上下文
listView.setFadingEdgeLength(0);
// = new ArrayList<Map<String, String>>();//建立一个数组存储listview上显示的数据
// for (int m = 0; m < initData.size(); m++) {//initData为一个list类型的数据源
// Map<String, String> nameMap = new HashMap<String, String>();
// nameMap.put("name", initData.get(m).get(TagItem.NAME).toString());
// nameList.add(nameMap);
// }
SimpleAdapter adapter = new SimpleAdapter(MoneyTradeActivity.this,
nameList, R.layout.item_uploadphoto_select_name,
new String[] { "name" },
new int[] { R.id.tv_uploadphoto_select_name_item });
listView.setAdapter(adapter);
linearLayoutMain.addView(listView);// 往这个布局中加入listview
final AlertDialog dialog = new AlertDialog.Builder(this)
.setTitle("选择银行卡").setView(linearLayoutMain)// 在这里把写好的这个listview的布局加载dialog中
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.cancel();
}
}).create();
dialog.setCanceledOnTouchOutside(false);// 使除了dialog以外的地方不能被点击
dialog.show();
listView.setOnItemClickListener(new OnItemClickListener() {// 响应listview中的item的点击事件
// @Override
// public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
// long arg3) {
// // TODO Auto-generated method stub
// TextView tv = (TextView) arg1
// .findViewById(R.id.tv_uploadphoto_select_name_item);//取得每条item中的textview控件
// et_name.setText(tv.getText().toString());
// dialog.cancel();
// }
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
firstCard = nameList.get(position).get("name");
tv_cardID.setText(firstCard);
dialog.cancel();
}
});
}
// 充值
private void recharge(String cardID, final String money) {
final ProgressDialog dialog = new ProgressDialog(
MoneyTradeActivity.this);
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
dialog.setMessage("正在处理...");
dialog.show();
Map<String, String> map = new HashMap<String, String>();
map.put("hxid", MYApplication.getInstance().getUserName());
map.put("cardID", cardID);
map.put("money", money);
LoadDataFromServer task = new LoadDataFromServer(
MoneyTradeActivity.this, Constant.URL_RECHARGE, map);
task.getData(new DataCallBack() {
@Override
public void onDataCallBack(JSONObject data) {
if (dialog.isShowing()) {
dialog.dismiss();
}
if (data == null) {
Toast.makeText(getApplicationContext(), "访问服务器错误,操作失敗...",
Toast.LENGTH_SHORT).show();
return;
}
int code = data.getInteger("code");
if (code == 1) {
String moneyNow = LocalUserInfo.getInstance(
getApplicationContext()).getUserInfo("money");
String moneyAfter = String.valueOf(Float
.parseFloat(moneyNow) + Float.parseFloat(money));
LocalUserInfo.getInstance(getApplicationContext())
.setUserInfo("money", moneyAfter);
Toast.makeText(getApplicationContext(), "充值成功!",
Toast.LENGTH_SHORT).show();
finish();
// datas = data.getJSONArray("data");
// adapter = new MyAdapter(MoneyTradeActivity.this, datas);
// listView.setAdapter(adapter);
// ACache.get(getApplicationContext()).put(Constant.CARDLIST,
// datas);
} else if (code == 4) {
Toast.makeText(getApplicationContext(), "充值卡余额不足!",
Toast.LENGTH_LONG).show();
} else if (code == 3) {
Toast.makeText(getApplicationContext(), "卡转出出错!",
Toast.LENGTH_LONG).show();
} else if (code == 2) {
Toast.makeText(getApplicationContext(), "零钱存入出错!",
Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(getApplicationContext(), "充值错误",
Toast.LENGTH_SHORT).show();
}
}
});
}
// 提现
private void withdraws(String cardID, final String money) {
final ProgressDialog dialog = new ProgressDialog(
MoneyTradeActivity.this);
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
dialog.setMessage("正在处理...");
dialog.show();
Map<String, String> map = new HashMap<String, String>();
map.put("hxid", MYApplication.getInstance().getUserName());
map.put("cardID", cardID);
map.put("money", money);
LoadDataFromServer task = new LoadDataFromServer(
MoneyTradeActivity.this, Constant.URL_WIRHDROW, map);
task.getData(new DataCallBack() {
@Override
public void onDataCallBack(JSONObject data) {
if (dialog.isShowing()) {
dialog.dismiss();
}
if (data == null) {
Toast.makeText(getApplicationContext(), "访问服务器错误,操作失敗...",
Toast.LENGTH_SHORT).show();
return;
}
int code = data.getInteger("code");
if (code == 1) {
String moneyNow = LocalUserInfo.getInstance(
getApplicationContext()).getUserInfo("money");
String moneyAfter = String.valueOf(Float
.parseFloat(moneyNow) - Float.parseFloat(money));
LocalUserInfo.getInstance(getApplicationContext())
.setUserInfo("money", moneyAfter);
Toast.makeText(getApplicationContext(), "提现成功!",
Toast.LENGTH_SHORT).show();
finish();
} else if (code == 4) {
Toast.makeText(getApplicationContext(), "零钱余额不足!",
Toast.LENGTH_LONG).show();
} else if (code == 3) {
Toast.makeText(getApplicationContext(), "零钱提出出错!",
Toast.LENGTH_LONG).show();
} else if (code == 2) {
Toast.makeText(getApplicationContext(), "转到银行卡出错!",
Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(getApplicationContext(), "提现失敗...",
Toast.LENGTH_SHORT).show();
}
}
});
}
}