package com.partynetwork.iparty.iparty; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Parcelable; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.partynetwork.iparty.R; import com.partynetwork.iparty.app.common.BitmapManager; import com.partynetwork.iparty.info.IpartyComboInfo; 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 IpartyPublishComboActivity extends Activity { public static final int COMBO_REQUEST_CODE = 10; public static final String COMBO_ARRAY = "comboArray"; /** * 显示当前套餐的布局 */ @ViewInject(R.id.body) private LinearLayout body; private IpartyComboInfo combo; /** * 存放当前套餐的布局List */ private List<IpartyComboInfo> infoList = new ArrayList<IpartyComboInfo>(); private BitmapManager bitmapManager; /** * * 覆盖方法 * * @see android.app.Activity#onCreate(android.os.Bundle) */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.iparty_publish_combo); ViewUtils.inject(this); init(); } /** * 初始化数据、控件 */ private void init() { bitmapManager=new BitmapManager(); try { Parcelable[] pArray = getIntent().getParcelableArrayExtra( IpartyPublishComboActivity.COMBO_ARRAY); for (int i = 0; i < pArray.length; i++) { infoList.add((IpartyComboInfo) pArray[i]); } showBody(); } catch (Exception e) { } } /** * 设置监听 * * @param view */ @OnClick({ R.id.menu_head_right, R.id.add_combo_tv }) public void onClick(View view) { switch (view.getId()) { case R.id.menu_head_right: // 返回 Intent intent = new Intent(); intent.putExtra(COMBO_ARRAY, (IpartyComboInfo[]) infoList .toArray(new IpartyComboInfo[infoList.size()])); this.setResult(COMBO_REQUEST_CODE, intent); finish(); break; case R.id.add_combo_tv: // 添加名额 Intent intent2 = new Intent(this, IpartyPublishComboInfoActivity.class); startActivityForResult(intent2, IpartyPublishComboInfoActivity.COMBO_INFO_REQUEST_CODE); break; default: break; } } /** * 覆盖方法 * * @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 IpartyPublishComboInfoActivity.COMBO_INFO_REQUEST_CODE: try { combo = data .getParcelableExtra(IpartyPublishComboInfoActivity.COMBO_INFO); } catch (Exception e) { return; } for (int i = 0; i < infoList.size(); i++) { if (infoList.get(i).getMoney() == combo.getMoney()) { infoList.set(i, combo); showBody(); return; } } infoList.add(combo); showBody(); break; default: break; } } /** * 添加套餐布局 * * @param info */ private void addComboLayout(final IpartyComboInfo info) { final View view = LayoutInflater.from(this).inflate( R.layout.iparty_publish_combo_item, null); TextView money = (TextView) view.findViewById(R.id.money); TextView number = (TextView) view.findViewById(R.id.number); TextView retaliation = (TextView) view.findViewById(R.id.retaliation); LinearLayout line = (LinearLayout) view.findViewById(R.id.line); ImageView photo = (ImageView) view.findViewById(R.id.photo); TextView delete = (TextView) view.findViewById(R.id.delete_tv); money.setText(info.getMoney() + ""); number.setText(info.getMaxNum() + ""); retaliation.setText(info.getIntroduce()); String url = info.getComboPhotoUrl(); if (url != null && !url.equals("")) { bitmapManager.loadBitmap(info.getComboPhotoUrl(), photo); } else { line.setVisibility(View.GONE); photo.setVisibility(View.GONE); } // 删除按钮的监听 delete.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { body.removeView(view); infoList.remove(info); } }); // 整体view的监听,用于点击修改操作 view.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent intent = new Intent(IpartyPublishComboActivity.this, IpartyPublishComboInfoActivity.class); intent.putExtra(IpartyPublishComboInfoActivity.COMBO_INFO, info); startActivityForResult(intent, IpartyPublishComboInfoActivity.COMBO_INFO_REQUEST_CODE); } }); body.addView(view); } /** * 显示当前的body */ private void showBody() { body.removeAllViews(); for (int i = 0; i < infoList.size(); i++) { addComboLayout(infoList.get(i)); } } @Override protected void onResume() { StatService.onResume(this); super.onResume(); } @Override protected void onPause() { StatService.onPause(this); super.onPause(); } }