package com.yeetou.xinyongkaguanjia.ui; import java.util.ArrayList; import java.util.List; import com.yeetou.xinyongkaguanjia.R; import com.yeetou.xinyongkaguanjia.component.MySpinnerButton; import com.yeetou.xinyongkaguanjia.component.MySpinnerButton.MyListItemOnClickListener; import com.yeetou.xinyongkaguanjia.constants.AppConstant; import com.yeetou.xinyongkaguanjia.db.base.DbBank; import com.yeetou.xinyongkaguanjia.db.base.DbBankCard; import com.yeetou.xinyongkaguanjia.db.service.DbAccountService; import com.yeetou.xinyongkaguanjia.db.service.DbBankCardService; import com.yeetou.xinyongkaguanjia.db.service.DbBankService; import com.yeetou.xinyongkaguanjia.db.service.DbStreamService; import com.yeetou.xinyongkaguanjia.http.service.SyncData; import com.yeetou.xinyongkaguanjia.http.service.UpdateCard; import com.yeetou.xinyongkaguanjia.info.Card; import com.yeetou.xinyongkaguanjia.util.ExitApplication; import com.yeetou.xinyongkaguanjia.util.NumberFormateUtil; import com.yeetou.xinyongkaguanjia.util.StringUtil; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.text.Editable; import android.text.Selection; import android.util.Log; import android.view.KeyEvent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnKeyListener; import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.TextView.OnEditorActionListener; import android.widget.Toast; public class ChangeCardActivity extends AbstractActivity { private MySpinnerButton change_spinner; private Boolean isCredit = false; private String bank_card_id; private DbBankCardService dbbcs; private DbBankCard dBankCard; private DbBankService dbBankService; private DbBank dbBank; private LinearLayout change_yue; private EditText change_text; private DbAccountService dbas; private Card card; private String temp_type; private ImageView change_logo; private TextView change_bankname; private TextView change_banknumber; private TextView TextView_Ab_Title; private LinearLayout LinearLayout_Ab_Left_Indicator; private DbStreamService dbss; private int flag = 0; private Button change_submit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_change_card); init(); } public void init() { change_spinner = (MySpinnerButton) findViewById(R.id.change_spinner); Bundle b = getIntent().getExtras(); isCredit = b.getBoolean("isCredit"); bank_card_id = b.getString("bank_card_id"); change_yue = (LinearLayout) findViewById(R.id.change_yue); change_text = (EditText) findViewById(R.id.change_text); dbas = new DbAccountService(this); card = new Card(); LinearLayout_Ab_Left_Indicator = (LinearLayout) findViewById(R.id.LinearLayout_Ab_Left_Indicator); change_logo = (ImageView) findViewById(R.id.change_logo); change_bankname = (TextView) findViewById(R.id.change_bankname); change_banknumber = (TextView) findViewById(R.id.change_banknumber); TextView_Ab_Title = (TextView) findViewById(R.id.TextView_Ab_Title); change_submit = (Button) findViewById(R.id.change_submit); dbbcs = new DbBankCardService(this); dBankCard = dbbcs.getById(bank_card_id); dbBankService = new DbBankService(this); dbBank = dbBankService.getById(dBankCard.getBank_id() + ""); dbss = new DbStreamService(this); change_text.setText(NumberFormateUtil.Fromate2(dbss.getBalanceByCard(bank_card_id))); // 流水中获取余额 // 设置输入框在末尾 Editable etext = change_text.getText(); Selection.setSelection(etext, etext.length()); change_logo.setImageBitmap(StringUtil.getBitmapFromAssert(this, dbBank.getLogo())); change_banknumber.setText("(" + dBankCard.getNumber() + ")"); change_yue.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub } }); change_submit.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub card.setId(bank_card_id); if (change_spinner.getText().toString().equals("信用卡")) { card.setCard_type("credit"); } else { card.setCard_type("debit"); } card.setBalance(change_text.getText().toString()); new Thread(new UpdateCard(ChangeCardActivity.this, mHandler2, dbas.get().getSecret(), dbas.get().getEmail(), card)).start(); showProgressDialog("正在修改储蓄卡余额"); InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(ChangeCardActivity.INPUT_METHOD_SERVICE); if (imm.isActive()) { imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0); } } }); /* * change_text.setOnKeyListener(new OnKeyListener() { * * @Override public boolean onKey(View v, int keyCode, KeyEvent event) { * * if (keyCode == KeyEvent.KEYCODE_ENTER) { // 在这里编写自己想要实现的功能 * card.setId(bank_card_id); * * if (change_spinner.getText().toString().equals("信用卡")) { * card.setCard_type("credit"); } else { card.setCard_type("debit"); } * card.setBalance(change_text.getText().toString()); new Thread(new * UpdateCard(ChangeCardActivity.this, mHandler2, * dbas.get().getSecret(), dbas.get().getEmail(), card)).start(); * showProgressDialog("正在修改储蓄卡余额"); InputMethodManager imm = * (InputMethodManager) * v.getContext().getSystemService(ChangeCardActivity * .INPUT_METHOD_SERVICE); if (imm.isActive()) { * imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0); } * return true; } // TODO Auto-generated method stub return false; } }); */ /* * change_text.setOnEditorActionListener(new OnEditorActionListener() { * * @Override public boolean onEditorAction(TextView v, int actionId, * KeyEvent event) { // TODO Auto-generated method stub * * if (actionId == KeyEvent.KEYCODE_ENTER) { // 在这里编写自己想要实现的功能 * card.setBand_id(bank_card_id); card.setNumber(dBankCard.getNumber()); * card.setCard_type(change_spinner.getText().toString()); * card.setBalance(change_text.getText().toString()); new Thread(new * UpdateCard(ChangeCardActivity.this, mHandler, dbas.get().getSecret(), * dbas.get().getEmail(), card)); InputMethodManager imm = * (InputMethodManager) * v.getContext().getSystemService(ChangeCardActivity * .INPUT_METHOD_SERVICE); if (imm.isActive()) { * imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0); } * return true; } return false; * * } }); */ if (isCredit) { change_spinner.setText("信用卡"); change_spinner.setBackgroundColor(Color.TRANSPARENT); change_submit.setVisibility(View.GONE); change_spinner.setClickable(false); change_yue.setVisibility(View.GONE); temp_type = "信用卡"; change_bankname.setText(dbBank.getName() + "信用卡"); TextView_Ab_Title.setText(dbBank.getName() + "信用卡" + " " + dBankCard.getNumber()); } else { change_spinner.setText("储蓄卡"); change_yue.setVisibility(View.VISIBLE); temp_type = "储蓄卡"; change_bankname.setText(dbBank.getName() + "储蓄卡"); TextView_Ab_Title.setText(dbBank.getName() + "储蓄卡" + " " + dBankCard.getNumber()); } List<String> list = new ArrayList<String>(); list.add("储蓄卡"); list.add("信用卡"); change_spinner.setListContent(list); change_spinner.setContainAll(false); change_spinner.setMyListItemOnClick(new MyListItemOnClickListener() { @Override public void onClick(String text) { // TODO Auto-generated method stub Log.d("ChangeCardActivity", change_spinner.getText().toString() + text.toString()); if (!text.equals(temp_type)) { card.setId(bank_card_id); if (text.equals("信用卡")) { card.setCard_type("credit"); } else { card.setCard_type("debit"); } card.setBalance(change_text.getText().toString()); new Thread(new UpdateCard(ChangeCardActivity.this, mHandler1, dbas.get().getSecret(), dbas.get().getEmail(), card)).start(); showProgressDialog("正在更改储蓄卡类型"); /* * if (text.equals("储蓄卡")) { isCredit = false; } else { * isCredit = true; } */ } } }); LinearLayout_Ab_Left_Indicator.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub finish(); } }); } public Handler mHandler1 = new Handler() { @Override public void handleMessage(Message msg) { dismissProgressDialog(); super.handleMessage(msg); switch (msg.what) { case AppConstant.HANDLER_MESSAGE_NORMAL: new Thread(new SyncData(ChangeCardActivity.this, SyncDatahandler1, dbas.get().getEmail(), dbas.get().getSecret(), 0)).start(); break; case AppConstant.HANDLER_MESSAGE_NONETWORK: break; case AppConstant.HANDLER_MESSAGE_TIMEOUT: break; case AppConstant.HANDLER_HTTPSTATUS_ERROR: break; } } }; public Handler mHandler2 = new Handler() { @Override public void handleMessage(Message msg) { dismissProgressDialog(); super.handleMessage(msg); switch (msg.what) { case AppConstant.HANDLER_MESSAGE_NORMAL: new Thread(new SyncData(ChangeCardActivity.this, SyncDatahandler2, dbas.get().getEmail(), dbas.get().getSecret(), 0)).start(); break; case AppConstant.HANDLER_MESSAGE_NONETWORK: break; case AppConstant.HANDLER_MESSAGE_TIMEOUT: break; case AppConstant.HANDLER_HTTPSTATUS_ERROR: break; } } }; public Handler SyncDatahandler1 = new Handler() { @Override public void handleMessage(Message msg) { dismissProgressDialog(); super.handleMessage(msg); switch (msg.what) { case AppConstant.HANDLER_MESSAGE_NORMAL: // 成功后转换类型。 flag = 1; isCredit = !isCredit; Toast.makeText(ChangeCardActivity.this, "类型修改成功", Toast.LENGTH_SHORT).show(); if (isCredit) { change_spinner.setText("信用卡"); change_yue.setVisibility(View.GONE); temp_type = "信用卡"; change_bankname.setText(dbBank.getName() + "信用卡"); TextView_Ab_Title.setText(dbBank.getName() + "信用卡" + " " + dBankCard.getNumber()); change_submit.setVisibility(View.GONE); // 如果是信用卡则 不能点击,且没有右下角箭头 change_spinner.setClickable(false); change_spinner.setBackgroundColor(Color.TRANSPARENT); } else { change_spinner.setText("储蓄卡"); change_yue.setVisibility(View.VISIBLE); temp_type = "储蓄卡"; change_bankname.setText(dbBank.getName() + "储蓄卡"); TextView_Ab_Title.setText(dbBank.getName() + "储蓄卡" + " " + dBankCard.getNumber()); } break; case AppConstant.HANDLER_MESSAGE_NONETWORK: break; case AppConstant.HANDLER_MESSAGE_TIMEOUT: break; case AppConstant.HANDLER_HTTPSTATUS_ERROR: break; } } }; public Handler SyncDatahandler2 = new Handler() { @Override public void handleMessage(Message msg) { dismissProgressDialog(); super.handleMessage(msg); flag = 1; switch (msg.what) { case AppConstant.HANDLER_MESSAGE_NORMAL: // 余额成功保存 Toast.makeText(ChangeCardActivity.this, "余额修改成", Toast.LENGTH_SHORT).show(); dbss = new DbStreamService(ChangeCardActivity.this); change_text.setText(NumberFormateUtil.Fromate2(dbss.getBalanceByCard(bank_card_id))); finish(); break; case AppConstant.HANDLER_MESSAGE_NONETWORK: break; case AppConstant.HANDLER_MESSAGE_TIMEOUT: break; case AppConstant.HANDLER_HTTPSTATUS_ERROR: break; } } }; @Override protected void onDestroy() { super.onDestroy(); if (flag == 1) { ExitApplication.getInstance().finishCardInfoActivity(); } } }