package cn.scau.scautreasure.ui; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.app.ActionBar; import android.view.MotionEvent; import android.view.View; import android.widget.EditText; import android.widget.LinearLayout; import com.devspark.appmsg.AppMsg; import com.roomorama.caldroid.CaldroidFragment; import com.roomorama.caldroid.CaldroidListener; import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.App; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.Click; import org.androidannotations.annotations.EFragment; import org.androidannotations.annotations.Touch; import org.androidannotations.annotations.ViewById; import java.util.ArrayList; import java.util.Date; import cn.scau.scautreasure.AppContext; import cn.scau.scautreasure.R; import cn.scau.scautreasure.helper.UIHelper; import cn.scau.scautreasure.util.DateUtil; /** * 条件选择 * User: Special Leung * Date: 13-8-15 * Time: 下午4:13 * Mail: specialcyci@gmail.com */ @EFragment(R.layout.card_param) public class CardParam extends CommonFragment { @App AppContext app; @Bean DateUtil dateUtil; @ViewById LinearLayout linear_parent; @ViewById EditText edt_start_date; @ViewById EditText edt_end_date; private EditText currentEditText; private CaldroidFragment dialogCaldroidFragment; @AfterViews void initActionBar(){ ActionBar actionBar = getSherlockActivity().getSupportActionBar(); actionBar.setTitle(R.string.title_params); } @Touch void edt_start_date(MotionEvent motionEvent){ layout_start_date(motionEvent); } @Touch void edt_end_date(MotionEvent motionEvent){ layout_end_date(motionEvent); } @Touch void layout_start_date(MotionEvent motionEvent){ showCaldroidDialog(edt_start_date,motionEvent); } @Touch void layout_end_date(MotionEvent motionEvent){ showCaldroidDialog(edt_end_date,motionEvent); } private void showCaldroidDialog(EditText targetView,MotionEvent motionEvent){ if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) { initCaldroidDialog(); dialogCaldroidFragment.show(getSherlockActivity().getSupportFragmentManager(), "CALDROID_DIALOG_FRAGMENT"); currentEditText = targetView; } } private void initCaldroidDialog(){ dialogCaldroidFragment = new CaldroidFragment(); dialogCaldroidFragment.setCaldroidListener(listener); Bundle bundle = new Bundle(); bundle.putBoolean(CaldroidFragment.SHOW_NAVIGATION_ARROWS, true); bundle.putString(CaldroidFragment.DIALOG_TITLE, "Select a date"); dialogCaldroidFragment.setArguments(bundle); } private CaldroidListener listener = new CaldroidListener() { @Override public void onSelectDate(Date date, View view) { currentEditText.setText(dateUtil.parseCardQueryDate(date)); dialogCaldroidFragment.dismiss(); } }; /** * 继续查询按钮点击事件; */ @Click void btn_continue(){ try { if(isRightStartAndEndDate()) startDetailFragment(); else AppMsg.makeText(getSherlockActivity(),R.string.tips_card_date_wrong,AppMsg.STYLE_ALERT).show(); } catch (Exception e) { e.printStackTrace(); } } private boolean isRightStartAndEndDate() { int startDate = Integer.valueOf(edt_start_date.getText().toString()); int endDate = Integer.valueOf(edt_end_date.getText().toString()); return !(startDate == 0 || endDate == 0 || (startDate > endDate)); } private void startDetailFragment() throws Exception { Fragment fragment = new Card_(); UIHelper.addFragment(getSherlockActivity(), fragment, "startAndEndDate", buildParamsValue()); } private ArrayList<String> buildParamsValue(){ ArrayList<String> value = new ArrayList<String>(); value.add(edt_start_date.getText().toString()); value.add(edt_end_date.getText().toString()); return value; } }