package com.example.mysql_tester; import com.actionbarsherlock.app.SherlockFragment; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuInflater; import com.actionbarsherlock.view.MenuItem; import android.app.Dialog; import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentManager; import android.app.TimePickerDialog; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.graphics.Color; import android.os.Bundle; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnFocusChangeListener; import android.view.ViewGroup; import android.view.View.OnTouchListener; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.TimePicker; public class EditItem_page2 extends SherlockFragment { SharedPreferences editItemPre; int is24Hours = 0; CheckBox cb_w1, cb_w2, cb_w3, cb_w4, cb_w5, cb_w6, cb_w7, cb_holiday, cb_is24Hour; LinearLayout l_layout2; LinearLayout l_layout2_inner; TextView txt_restdays; private static TextView txt_Start, txt_Close; private Button btn_set_start, btn_set_close; private static int mHour; private static int mMinute; static String start_backup,end_backup; static int switcher = 0; EditText edt_Memo; String startTime, endTime, start, end; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); } public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceBundle) { View view = inflater .inflate(R.layout.edit_item_page2, container, false); editItemPre = getActivity().getSharedPreferences("editItem_tmp", 0); Editor editWriter = editItemPre.edit(); // �q�������o���� txt_restdays = (TextView) view .findViewById(R.id.textView_restdays_edit); txt_Start = (TextView) view.findViewById(R.id.textView_store_start2); txt_Close = (TextView) view.findViewById(R.id.textView_store_end2); btn_set_start = (Button) view.findViewById(R.id.button_add_start_time2); btn_set_close = (Button) view.findViewById(R.id.button_add_close_time2); Button btn_set_restReset = (Button) view .findViewById(R.id.btn_restReset); btn_set_restReset.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { editItemPre = getActivity().getSharedPreferences("editItem_tmp", 0); Editor editWriter = editItemPre.edit(); editWriter.putString("sWeek", ""); editWriter.commit(); cb_w1.setChecked(false); cb_w2.setChecked(false); cb_w3.setChecked(false); cb_w4.setChecked(false); cb_w5.setChecked(false); cb_w6.setChecked(false); cb_w7.setChecked(false); cb_holiday.setChecked(false); txt_restdays.setText(""); } }); l_layout2 = (LinearLayout) view.findViewById(R.id.editItem_layout_p2); // l_layout2_inner = // (LinearLayout)view.findViewById(R.id.editItem_layout_p2_inner); edt_Memo = (EditText) view.findViewById(R.id.editText_sMemo2); // �qBundle���o��T is24Hours = editItemPre.getInt("is24Hours", 0); start = editItemPre.getString("startTime", ""); end = editItemPre.getString("closeTime", ""); start_backup = start; end_backup = end; if (!start.equals("") || !end.equals("")) { txt_Start.setText(start); txt_Close.setText(end); } cb_is24Hour = (CheckBox) view.findViewById(R.id.is24hr_editItem); if (is24Hours == 1) { cb_is24Hour.setChecked(true); btn_set_start.setClickable(false); btn_set_close.setClickable(false); btn_set_start.setBackgroundColor(Color.parseColor("#808080")); btn_set_close.setBackgroundColor(Color.parseColor("#808080")); } txt_restdays.setText(editItemPre.getString("sWeek", "")); edt_Memo.setText(editItemPre.getString("sMemo", "")); editWriter.putInt("tab2_viewed", 1); // �o�O�H�H�H editWriter.commit(); // CheckBox cb_w1 = (CheckBox) view.findViewById(R.id.checkBox_w1_editItem); cb_w2 = (CheckBox) view.findViewById(R.id.checkBox_w2_editItem); cb_w3 = (CheckBox) view.findViewById(R.id.checkBox_w3_editItem); cb_w4 = (CheckBox) view.findViewById(R.id.checkBox_w4_editItem); cb_w5 = (CheckBox) view.findViewById(R.id.checkBox_w5_editItem); cb_w6 = (CheckBox) view.findViewById(R.id.checkBox_w6_editItem); cb_w7 = (CheckBox) view.findViewById(R.id.checkBox_w7_editItem); cb_holiday = (CheckBox) view .findViewById(R.id.checkBox_holiday_editItem); // �]�w��ť cb_is24Hour.setOnCheckedChangeListener(hourListener); btn_set_close.setOnClickListener(btn_listener); btn_set_start.setOnClickListener(btn_listener); l_layout2.setOnTouchListener(layout_listener); cb_w1.setOnCheckedChangeListener(cb_listener); cb_w2.setOnCheckedChangeListener(cb_listener); cb_w3.setOnCheckedChangeListener(cb_listener); cb_w4.setOnCheckedChangeListener(cb_listener); cb_w5.setOnCheckedChangeListener(cb_listener); cb_w6.setOnCheckedChangeListener(cb_listener); cb_w7.setOnCheckedChangeListener(cb_listener); cb_holiday.setOnCheckedChangeListener(cb_listener); edt_Memo.setOnFocusChangeListener(focusChangeListener); return view; } private OnFocusChangeListener focusChangeListener = new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if (!hasFocus) { editItemPre = getActivity().getSharedPreferences("editItem_tmp", 0); Editor editWriter = editItemPre.edit(); editWriter.putString("sMemo", edt_Memo.getText().toString()); editWriter.commit(); } } }; private CheckBox.OnCheckedChangeListener hourListener = new CheckBox.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { editItemPre = getActivity().getSharedPreferences("editItem_tmp", 0); Editor editWriter = editItemPre.edit(); if (cb_is24Hour.isChecked()) { is24Hours = 1; txt_Start.setText("00:00"); txt_Close.setText("24:00"); editWriter.putString("startTime", "00:00"); editWriter.putString("closeTime", "24:00"); btn_set_start.setClickable(false); btn_set_close.setClickable(false); btn_set_start.setBackgroundColor(Color.parseColor("#808080")); btn_set_close.setBackgroundColor(Color.parseColor("#808080")); } else { is24Hours = 0; if (start_backup.equals("") || end_backup.equals("")) { final String start_word = getActivity().getResources().getString(R.string.Item_startTime); final String end_word = getActivity().getResources().getString(R.string.Item_endTime); txt_Start.setText(start_word); txt_Close.setText(end_word); } txt_Start.setText(start_backup); txt_Close.setText(end_backup); editWriter.putString("startTime", start); editWriter.putString("closeTime", end); btn_set_start.setClickable(true); btn_set_close.setClickable(true); btn_set_start .setBackgroundResource(android.R.drawable.btn_default); btn_set_close .setBackgroundResource(android.R.drawable.btn_default); } editWriter.putInt("is24Hours", is24Hours); editWriter.commit(); } }; private CheckBox.OnCheckedChangeListener cb_listener = new CheckBox.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { String rest_day = ""; // �` String w1, w2, w3, w4, w5, w6, w7, w8; // ��@�ﶵ if (cb_w1.isChecked()) w1 = cb_w1.getText().toString() + " "; else w1 = ""; if (cb_w2.isChecked()) w2 = cb_w2.getText().toString() + " "; else w2 = ""; if (cb_w3.isChecked()) w3 = cb_w3.getText().toString() + " "; else w3 = ""; if (cb_w4.isChecked()) w4 = cb_w4.getText().toString() + " "; else w4 = ""; if (cb_w5.isChecked()) w5 = cb_w5.getText().toString() + " "; else w5 = ""; if (cb_w6.isChecked()) w6 = cb_w6.getText().toString() + " "; else w6 = ""; if (cb_w7.isChecked()) w7 = cb_w7.getText().toString() + " "; else w7 = ""; if (cb_holiday.isChecked()) w8 = cb_holiday.getText().toString() + " "; else w8 = ""; rest_day = w1 + w2 + w3 + w4 + w5 + w6 + w7 + w8; editItemPre = getActivity().getSharedPreferences("editItem_tmp", 0); Editor editWriter = editItemPre.edit(); editWriter.putString("sWeek", rest_day); editWriter.commit(); } }; private Button.OnClickListener btn_listener = new Button.OnClickListener() { @Override public void onClick(View v) { TimePickerFragment timePickerFragment = new TimePickerFragment(); FragmentManager fm = getActivity().getSupportFragmentManager(); switch (v.getId()) { case R.id.button_add_start_time2: switcher = 1; timePickerFragment.show(fm, "timePicker"); break; case R.id.button_add_close_time2: switcher = 0; timePickerFragment.show(fm, "timePicker"); break; } } }; // ��sTextView���ɶ��Ϊ� private static void updateDisplay(int switcher) { String times = pad(mHour) + ":" + pad(mMinute); if (switcher == 1) { txt_Start.setText(times); start_backup = times; } else { txt_Close.setText(times); end_backup = times; } } // �ɶ��ɹs�Ϊ� private static String pad(int c) { if (c >= 10) { return String.valueOf(c); } else { return "0" + String.valueOf(c); } } // ��ܮɶ������� public static class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener { @Override public Dialog onCreateDialog(Bundle savedInstenceBundle) { // �إ�TimePickerDialog���� // this �� OnTimeListener ���� // mHour,mMinute�|�����ɶ��D�ᄍ�w�諸�ɻP�� // false �N����24�ɨ� TimePickerDialog timePickerDialog = new TimePickerDialog( getActivity(), this, mHour, mMinute, false); return timePickerDialog; } @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { mHour = hourOfDay; mMinute = minute; updateDisplay(switcher); } } private OnTouchListener layout_listener = new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: informationGeter(); break; } return true; } }; @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.forceinput, menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_forceinput: informationGeter(); break; } return super.onOptionsItemSelected(item); } public void informationGeter() { startTime = txt_Start.getText().toString(); endTime = txt_Close.getText().toString(); editItemPre = getActivity().getSharedPreferences("editItem_tmp", 0); Editor editWriter = editItemPre.edit(); if (!startTime.equals(getActivity().getString(R.string.Item_startTime)) || !endTime.equals(getActivity().getString(R.string.Item_endTime))) { editWriter.putString("startTime", startTime); editWriter.putString("closeTime", endTime); } String memo = edt_Memo.getText().toString(); editWriter.putString("sMemo", memo); editWriter.commit(); } /* ���}Fragment�ɼg�JBundle */ @Override public void onDestroyView() { super.onDestroyView(); informationGeter(); } }