package cn.edu.njupt.allgo.activity; import cn.edu.njupt.allgo.R; import cn.edu.njupt.allgo.fragment.PlaceSpinnerDialogFRAGMENT; import cn.edu.njupt.allgo.logic.AddEventLogic; import cn.edu.njupt.allgo.logic.RefreshInterFace; import cn.edu.njupt.allgo.logicImpl.AddEventLogicImpl; import cn.edu.njupt.allgo.util.DateUtil; import cn.edu.njupt.allgo.widget.MyDateSpinnerA; import cn.edu.njupt.allgo.widget.MyDateSpinnerB; import cn.edu.njupt.allgo.widget.MyTimeSpinnerA; import cn.edu.njupt.allgo.widget.MyTimeSpinnerB; import android.app.ProgressDialog; import android.content.Intent; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.app.NavUtils; import android.support.v4.app.TaskStackBuilder; import android.util.Log; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.EditText; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.Toast; public class AddEventACTIVITY extends BaseActivity implements RefreshInterFace{ private MyDateSpinnerA dateSpinnerA; private MyTimeSpinnerA timeSpinnerA; private MyDateSpinnerB dateSpinnerB; private MyTimeSpinnerB timeSpinnerB; private Button button_submit; private EditText editText_Outline; private CheckBox checkBox_showSpinnerB; private EditText editText_place; private RadioGroup group_Category; private String categoryname = "旅游" ; private String visible = "所有人" ; private boolean isSpinnerB = false ; private RadioGroup group_visiable; private EditText event_content; private Button button_cancel; private ProgressDialog progressDialog; private AddEventLogic addEventLogic ; private Button button_addevent_position; private String position; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_addevent); addEventLogic = new AddEventLogicImpl(this,this); if(getActionBar() != null) { getActionBar().setDisplayHomeAsUpEnabled(true); } setFinishOnTouchOutside(false); editText_Outline = (EditText) findViewById(R.id.editText_Outline); checkBox_showSpinnerB =(CheckBox) findViewById(R.id.checkBox_showDateB); dateSpinnerA = (MyDateSpinnerA) findViewById(R.id.datespinnerA); timeSpinnerA = (MyTimeSpinnerA) findViewById(R.id.timespinnerA); dateSpinnerB = (MyDateSpinnerB) findViewById(R.id.datespinnerB); timeSpinnerB = (MyTimeSpinnerB) findViewById(R.id.timespinnerB); editText_place = (EditText) findViewById(R.id.editText_place); group_Category = (RadioGroup)this.findViewById(R.id.radioGroup_Category); group_visiable = (RadioGroup)this.findViewById(R.id.radioGroup_visiable); button_submit = (Button) findViewById(R.id.button_submit); button_cancel = (Button) findViewById(R.id.Button_cancel); event_content = (EditText) findViewById(R.id.event_content); button_addevent_position = (Button)findViewById(R.id.button_addevent_position); Rect frames = new Rect(); AddEventACTIVITY.this.getWindow().getDecorView().getWindowVisibleDisplayFrame(frames); if(frames.width() < 500 ) { RadioButton radio_tour1 = (RadioButton)findViewById(R.id.radio_tour); RadioButton radio_dine1 = (RadioButton)findViewById(R.id.radio_dine); RadioButton radio_sport1 = (RadioButton)findViewById(R.id.radio_sport); RadioButton radio_amuse1 = (RadioButton)findViewById(R.id.radio_amuse); RadioButton radio_meet1 = (RadioButton)findViewById(R.id.radio_meet); radio_tour1.setPadding(40, 4, 4, 4); radio_dine1.setPadding(40, 4, 4, 4); radio_sport1.setPadding(40, 4, 4, 4); radio_amuse1.setPadding(40, 4, 4, 4); radio_meet1.setPadding(40, 4, 4, 4); } checkBox_showSpinnerB.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton arg0, boolean arg1) { isSpinnerB = arg1 ; dateSpinnerB.setVisibility(arg1?View.VISIBLE:View.GONE); timeSpinnerB.setVisibility(arg1?View.VISIBLE:View.GONE); } }); group_Category.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { int radioButtonId = group.getCheckedRadioButtonId(); //根据ID获取RadioButton的实例 RadioButton rb = (RadioButton)AddEventACTIVITY.this.findViewById(radioButtonId); //更新文本内容,以符合选中项 categoryname = rb.getText().toString() ; /* Toast.makeText(AddEventACTIVITY.this, categoryname , Toast.LENGTH_SHORT).show();*/ }}); group_visiable.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { int radioButtonId = group.getCheckedRadioButtonId(); //根据ID获取RadioButton的实例 RadioButton rb = (RadioButton)AddEventACTIVITY.this.findViewById(radioButtonId); //更新文本内容,以符合选中项 visible = rb.getText().toString() ; /* Toast.makeText(AddEventACTIVITY.this, visible , Toast.LENGTH_SHORT).show();*/ }}); button_addevent_position.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO 显示PlaceSpinner PlaceSpinnerDialogFRAGMENT newFragment = PlaceSpinnerDialogFRAGMENT.newInstance("PostionSpinner"); newFragment.show(getSupportFragmentManager(), "dialog"); } }); button_submit.setOnClickListener(new View.OnClickListener() { //TODO 提交活动 @Override public void onClick(View v) { String dateA = (String)dateSpinnerA.getItemAtPosition(0) ; String timeA = (String)timeSpinnerA.getItemAtPosition(0) ; String startdate = dateA+"-"+timeA; startdate = DateUtil.changeDate(startdate.replaceAll(" [^a]*\\-", "")); /*Toast.makeText(AddEventACTIVITY.this, editText_Outline.getText() + dateA + timeA + isSpinnerB + categoryname + editText_place.getText() + visible + event_content.getText() , Toast.LENGTH_SHORT).show();*/ if(editText_Outline.getText().toString().equals("")){ Toast.makeText(AddEventACTIVITY.this, "活动概要没写", Toast.LENGTH_SHORT).show(); }else if(editText_place.getText().toString().equals("")){ Toast.makeText(AddEventACTIVITY.this, "活动地点没写", Toast.LENGTH_SHORT).show(); }else if(event_content.getText().toString().equals("")){ Toast.makeText(AddEventACTIVITY.this, "请写点详细内容", Toast.LENGTH_SHORT).show(); }else if(position == null){ Toast.makeText(AddEventACTIVITY.this, "请点击区域按钮选择地理位置", Toast.LENGTH_SHORT).show(); }else if(isSpinnerB){ String dateB = (String)dateSpinnerB.getItemAtPosition(0) ; String timeB = (String)timeSpinnerB.getItemAtPosition(0) ; String enddate = dateB+"-"+timeB; enddate = DateUtil.changeDate(enddate.replaceAll(" [^a]*\\-", "")); if(checkTime(startdate ,enddate)){ showProgressDialog("正在提交"); addEventLogic.addEvent(editText_Outline.getText().toString(),startdate ,enddate, event_content.getText().toString(), editText_place.getText().toString(), position, categoryname, visible.equals("所有人")?0:1); } }else{ if(checkTime(startdate ,null)){ showProgressDialog("正在提交"); addEventLogic.addEvent(editText_Outline.getText().toString(), startdate, null, event_content.getText().toString(), editText_place.getText().toString(), position, categoryname, visible.equals("所有人")?0:1); } } } }); button_cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); } private boolean checkTime(String startdate ,String enddate){ boolean flag = true; if(enddate != null){ int compare = DateUtil.compareDate(startdate, enddate); if(compare >= 0){ Toast.makeText(this, "结束时间必须在开始时间之后", Toast.LENGTH_SHORT).show(); flag = false; } } if(flag){ switch(DateUtil.judgeDate(startdate, enddate)){ case 1: //活动已经结束 Toast.makeText(this, "请不要选择过去的时间", Toast.LENGTH_SHORT).show(); flag = false; break; default: flag = true; break; } } return flag; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: finish(); return true; } return super.onOptionsItemSelected(item); } /** * 显示提示框 */ private void showProgressDialog(String title) { if ((!isFinishing()) && (this.progressDialog == null)) { this.progressDialog = new ProgressDialog(this); } progressDialog.setCancelable(false); this.progressDialog.setTitle(title); this.progressDialog.setMessage("请稍等..."); this.progressDialog.show(); } @Override protected void onDestroy() { super.onDestroy(); closeProgressDialog(); Log.i("Activity"," onDestroy() ==> AddEventACTIVITY"); } /** * 关闭提示框 */ protected void closeProgressDialog() { if (this.progressDialog != null) this.progressDialog.dismiss(); } //点击确认区域,从dialog回调 public void changePosition(String position){ this.position = position; Drawable left = getResources().getDrawable(R.drawable.icon_location_event_red) ; left.setBounds(0, 0, left.getIntrinsicWidth(), left.getIntrinsicHeight()); button_addevent_position.setCompoundDrawables(left, null, null, null); } @Override public void refresh(Object result, int kind) { switch(kind){ case 1: Toast.makeText(this,"成功提交活动", Toast.LENGTH_SHORT).show(); closeProgressDialog(); finish(); break; case -1: String arg1 = (String) result ; Toast.makeText(this,arg1, Toast.LENGTH_SHORT).show(); closeProgressDialog(); break; } } }