/** * */ package com.hupu.games.casino; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Paint; import android.text.Editable; import android.text.Html; import android.text.TextWatcher; import android.view.Gravity; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager.LayoutParams; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.EditText; import android.widget.GridView; import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.RadioGroup; import android.widget.RadioGroup.OnCheckedChangeListener; import android.widget.TextView; import com.hupu.games.R; import com.hupu.games.activity.BaseGameActivity; import com.hupu.games.common.HupuLog; import com.hupu.games.common.SharedPreferencesMgr; import com.hupu.games.data.game.quiz.QuizCaipiaoEntity; import com.hupu.games.data.game.quiz.QuizCaipiaoListResp; import com.hupu.games.data.game.quiz.QuizCaipiaoEntity.CaipiaoAnswer; /** * @author dongshuming * */ public class CaipiaoCasinoDialog extends Dialog { private static final String balance2 = "余额不足,需兑换<font color=\"#FF0000\">%d</font>金豆"; /** 题目 */ TextView txtContent; /** 选择的答案 */ TextView txtChoice; TextView txtBetInfo; GridView gdView; /** 用户下注 */ int bet; /** 可以下注的选项 */ int[] bets; /** 是不是无限制下注 */ boolean bNoLimited; /** 余额 */ private float balance; /** 已投入金额 */ private int beted; private int res[] = { R.id.radio0, R.id.radio1, R.id.radio2, R.id.radio3, R.id.radio4, R.id.radio5 }; private TextView tvs[], txtAgreement; /** 最大下注额 */ // private int maxBet; BaseGameActivity mContext; private ImageButton btnAgree; private TextView txtTips; /** * * @param context * @param click * @param bs * 下注选项 * @param caipiao * 彩票实体 * @param answerIndex * 选项ID */ public CaipiaoCasinoDialog(Context context, View.OnClickListener click, QuizCaipiaoEntity caipiao, int answerIndex) { super(context, R.style.MyWebDialog); mContext = (BaseGameActivity) context; View v = LayoutInflater.from(context).inflate( R.layout.dialog_caipiao_casino, null); txtContent = (TextView) v.findViewById(R.id.txt_casino_title); txtChoice = (TextView) v.findViewById(R.id.txt_casino_choice); txtBetInfo = (TextView) v.findViewById(R.id.txt_bet_info); if (bets == null) { bets = new int[6]; } // reqBitCoin(answer.casino_id); if (caipiao.mList.get(answerIndex).bets != null) { for (int i = 0; i < caipiao.mList.get(answerIndex).bets.size(); i++) { bets[i] = caipiao.mList.get(answerIndex).bets.get(i).bet; } } // maxBet = bets[6]; // bNoLimited = maxBet == 0; v.findViewById(R.id.btn_caipiao_cancel).setOnClickListener(click); v.findViewById(R.id.btn_caipiao_confirm).setOnClickListener(click); txtAgreement = (TextView) v.findViewById(R.id.txt_agreement); btnAgree = (ImageButton) v.findViewById(R.id.img_agree); txtTips = (TextView) v.findViewById(R.id.txt_bet_tips); txtAgreement.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); txtAgreement.setOnClickListener(click); btnAgree.setOnClickListener(new agreeButtonListener()); txtTips.setText(SharedPreferencesMgr.getString("caipiaoTips",context.getString(R.id.txt_bet_tips).toString()).toString()); setContentView(v); getWindow().setGravity(Gravity.CENTER); // 初始化 相关选项实体 answer = caipiao.mList.get(answerIndex); initRadio(v); } public CaipiaoCasinoDialog(Context context, View.OnClickListener click, CaipiaoAnswer scoreAnswer) { super(context, R.style.MyWebDialog); mContext = (BaseGameActivity) context; View v = LayoutInflater.from(context).inflate( R.layout.dialog_caipiao_casino, null); txtContent = (TextView) v.findViewById(R.id.txt_casino_title); txtChoice = (TextView) v.findViewById(R.id.txt_casino_choice); txtBetInfo = (TextView) v.findViewById(R.id.txt_bet_info); if (bets == null) { bets = new int[6]; } // reqBitCoin(answer.casino_id); if (scoreAnswer.bets != null) { for (int i = 0; i < scoreAnswer.bets.size(); i++) { bets[i] = scoreAnswer.bets.get(i).bet; } } // maxBet = bets[6]; // bNoLimited = maxBet == 0; v.findViewById(R.id.btn_caipiao_cancel).setOnClickListener(click); v.findViewById(R.id.btn_caipiao_confirm).setOnClickListener(click); txtAgreement = (TextView) v.findViewById(R.id.txt_agreement); btnAgree = (ImageButton) v.findViewById(R.id.img_agree); txtTips = (TextView) v.findViewById(R.id.txt_bet_tips); txtAgreement.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); txtAgreement.setOnClickListener(click); btnAgree.setOnClickListener(new agreeButtonListener()); txtTips.setText(SharedPreferencesMgr.getString("caipiaoTips",context.getString(R.id.txt_bet_tips).toString()).toString()); setContentView(v); getWindow().setGravity(Gravity.CENTER); // 初始化 相关选项实体 answer = scoreAnswer; initRadio(v); } private void initRadio(View v) { RadiobuttonListener n = new RadiobuttonListener(); tvs = new TextView[6]; for (int i = 0; i < 6; i++) { tvs[i] = (TextView) v.findViewById(res[i]); tvs[i].setOnClickListener(n); if (i == 1) tvs[i].performClick(); tvs[i].setText(bets[i] + "元"); } } /** * 显示对话框 * */ private CaipiaoAnswer answer; public void goShow(String title) { txtContent.setText(title); txtChoice.setText("我猜:" + answer.answer_title+("".equals(answer.odd)?"":("("+answer.odd+")"))); //如果有赔率需要加上赔率 show(); getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); } /** * 设置余额 * * @param v1 * 已投入 * @param v2 * 余额 * */ public void setBet(float caipiaoBalance) { balance = caipiaoBalance; } private void updateValue() { HupuLog.d("updateValue", "bet=" + bet); } public int getInputCoin() { return bet; } /** 是否有钱下注 */ public int canBet() { if (bet == 0) return -2;// 未选择下注金额 if (balance < 1f || balance < bet) return -1;// 余额不足 return 1; } public int getBetDif() { float coin = bet - balance; return ((int)coin)-coin < 0 ? ((int)coin) + 1:(int)coin; } View lastView; private void updateBetInfo(int index) { txtBetInfo.setText(Html.fromHtml("投入:<font color=\"#FF0000\">" + bet + "</font>" + "元,预计奖金" + answer.bets.get(index).bonus + "元")); } private class RadiobuttonListener implements View.OnClickListener { @Override public void onClick(View v) { int id = v.getId(); if (lastView != null) lastView.setSelected(false); v.setSelected(true); lastView = v; switch (id) { case R.id.radio0: bet = bets[0]; updateBetInfo(0); break; case R.id.radio1: bet = bets[1]; updateBetInfo(1); break; case R.id.radio2: bet = bets[2]; updateBetInfo(2); break; case R.id.radio3: bet = bets[3]; updateBetInfo(3); break; case R.id.radio4: bet = bets[4]; updateBetInfo(4); break; case R.id.radio5: bet = bets[5]; updateBetInfo(5); break; } updateValue(); } } public boolean isAgree = true; private class agreeButtonListener implements View.OnClickListener { @Override public void onClick(View v) { // TODO Auto-generated method stub if (isAgree) { v.setBackgroundResource(R.drawable.choose_btn_red); isAgree = false; } else { v.setBackgroundResource(R.drawable.choose_btn_down); isAgree = true; } } } }