package com.partynetwork.iparty.iparty; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Parcelable; import android.view.View; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; import com.partynetwork.dataprovider.json.struct.Iparty_releaseIpartyRequest; import com.partynetwork.dataprovider.util.StringUtil; import com.partynetwork.iparty.R; import com.partynetwork.iparty.info.IpartyComboInfo; import com.partynetwork.iparty.info.IpartyFreeComboInfo; import com.partynetwork.myview.mytoast.OkPopup; import com.baidu.mobstat.StatService; import com.lidroid.xutils.ViewUtils; import com.lidroid.xutils.view.annotation.ViewInject; import com.lidroid.xutils.view.annotation.event.OnClick; public class IpartyPublishThreeActivity extends Activity { private static final int NEED_NAME_NO = 0; private static final int NEED_NAME_YES = 1; /** * 目标众筹金额 */ @ViewInject(R.id.money) private EditText money; /** * 提前天数 */ @ViewInject(R.id.day) private EditText day; /** * 不需要提供姓名,电话 */ @ViewInject(R.id.need_name_no) private TextView needNameNo; /** * 需要提供姓名,电话 */ @ViewInject(R.id.need_name_yes) private TextView needNameYes; /** * 众筹的显示体 */ @ViewInject(R.id.event_model_body) private LinearLayout modelBody; /** * 付费套餐 */ @ViewInject(R.id.combo_tv) private TextView comboTv; /** * 免费套餐 */ @ViewInject(R.id.free_combo_tv) private TextView freeComboTv; /** * 用于单选的List */ private List<TextView> needNameList = new ArrayList<TextView>(); /** * 请求对象 */ private Iparty_releaseIpartyRequest request; /** * 是否需要用户提供照片 */ private int needName; // 收费套餐数组 private IpartyComboInfo[] comboArray; // 免费套餐 private IpartyFreeComboInfo freeCombo; /** 消息提示框 */ private OkPopup mOkPopup; /** * * 覆盖方法 * * @see android.app.Activity#onCreate(android.os.Bundle) */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.iparty_publish_three); ViewUtils.inject(this); init(); } /** * 初始化数据、控件 */ private void init() { needNameList.add(needNameNo); needNameList.add(needNameYes); request = getIntent().getParcelableExtra( IpartyPublishOneActivity.REQUEST); if (request.getEventModel() == 0) { modelBody.setVisibility(View.VISIBLE); } else { modelBody.setVisibility(View.GONE); } mOkPopup = new OkPopup(this); } /** * 设置监听 * * @param view */ @OnClick({ R.id.menu_head_left, R.id.combo_rl, R.id.combo_free_rl, R.id.need_name_no, R.id.need_name_yes, R.id.next }) public void onClick(View view) { switch (view.getId()) { case R.id.menu_head_left: // 返回 finish(); break; case R.id.next: // 下一步 if (initRequst()) { Intent intent3 = new Intent(this, IpartyPublishFourActivity.class); intent3.putExtra(IpartyPublishOneActivity.REQUEST, request); startActivity(intent3); } break; case R.id.combo_rl: // 付费名额设定 Intent intent = new Intent(this, IpartyPublishComboActivity.class); if (comboArray != null) { intent.putExtra(IpartyPublishComboActivity.COMBO_ARRAY, comboArray); } startActivityForResult(intent, IpartyPublishComboActivity.COMBO_REQUEST_CODE); break; case R.id.combo_free_rl: // 免费名额设定 Intent intent2 = new Intent(this, IpartyPublishComboFreeActivity.class); if (freeCombo != null) { intent2.putExtra(IpartyPublishComboFreeActivity.COMBO_FREE, freeCombo); } startActivityForResult(intent2, IpartyPublishComboFreeActivity.COMBO_FREE_REQUEST_CODE); break; case R.id.need_name_no: // 不需要提供姓名,电话 choose(NEED_NAME_NO); break; case R.id.need_name_yes: // 需要提供姓名,电话 choose(NEED_NAME_YES); break; default: break; } } /** * 是否需要提供姓名 * * @param needName */ private void choose(int needName) { this.needName = needName; for (int i = 0; i < needNameList.size(); i++) { if (needName == i) { Drawable left = this.getResources().getDrawable( R.drawable.contacts_selected); left.setBounds(0, 0, left.getMinimumWidth(), left.getMinimumHeight()); needNameList.get(i) .setCompoundDrawables(left, null, null, null); } else { Drawable left = this.getResources().getDrawable( R.drawable.contacts_normal); left.setBounds(0, 0, left.getMinimumWidth(), left.getMinimumHeight()); needNameList.get(i) .setCompoundDrawables(left, null, null, null); } } } /** * 覆盖方法 * * @see android.app.Activity#onActivityResult(int, int, * android.content.Intent) */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case IpartyPublishComboActivity.COMBO_REQUEST_CODE: // 付费套餐 try { String str = ""; comboTv.setText(str); Parcelable[] pArray = data .getParcelableArrayExtra(IpartyPublishComboActivity.COMBO_ARRAY); comboArray = new IpartyComboInfo[pArray.length]; for (int i = 0; i < pArray.length; i++) { comboArray[i] = (IpartyComboInfo) pArray[i]; if (i == pArray.length - 1) { str += StringUtil.formatFloat(comboArray[i].getMoney()); } else { str += StringUtil.formatFloat(comboArray[i].getMoney()) + "/"; } } if(str.length()>18){ str=str.substring(0, 18)+"..."; } comboTv.setText(str); request.setEventCombo(comboArray); } catch (Exception e) { } break; case IpartyPublishComboFreeActivity.COMBO_FREE_REQUEST_CODE: freeComboTv.setText(""); try { freeCombo = data .getParcelableExtra(IpartyPublishComboFreeActivity.COMBO_FREE); if (freeCombo != null) { freeComboTv.setText(freeCombo.getMaxNum() + "个免费名额"); } else { freeComboTv.setText(""); } request.setEventFreeCombo(freeCombo); } catch (Exception e) { } break; default: break; } } /** * 初始化请求数据 */ private boolean initRequst() { // 目标众筹金额 String money = StringUtil.checkEditText(this.money); if (!money.equals("")) { request.setEventGoalMoney((float) Integer.parseInt(money)); } // 提前几天截止 String day = StringUtil.checkEditText(this.day); if (!day.equals("")) { request.setEventAheadDay(Integer.parseInt(day)); } if ((comboArray == null || comboArray.length == 0) && freeCombo == null) { mOkPopup.setTitle("套餐都不选啊?"); mOkPopup.showAtLocation(needNameNo); return false; // 套餐为空 } // 是否需要用户提供照片 request.setEventNeedCondition(needName); return true; } @Override protected void onResume() { StatService.onResume(this); super.onResume(); } @Override protected void onPause() { StatService.onPause(this); super.onPause(); } }