/** * @author UFreedom * @since 2014 2014-10-2 上午8:42:06 * @see www.52yummy.com * <br> * sunfreedom@sina.cn * <br> * Copyright (C) 2014 UFreedom. All Rights Reserved. */ package com.codecomb.views; import android.app.Activity; import android.app.ProgressDialog; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.TextView; import android.widget.Toast; import com.codecomb.exceptions.AppException; import com.codecomb.module.base.Base; import com.codecomb.module.clarifications.Clarification; import com.codecomb.module.clarifications.ClarificationManager; import com.codecomb.ufreedom.R; import com.commonsware.cwac.richedit.RichEditText; public class ResponseClarificationFragment extends Fragment implements OnClickListener { public static final String EXTRA_CLARFICATION = ResponseClarificationFragment.class .getSimpleName(); private static final int REQUEST_STATUS = 0; private Clarification clarification; private View rootView; private TextView vClarificationQuestion; private RichEditText vClarificationAnswer; private View vBack; private View vSave; private TextView vTitle; public static Fragment newInstance(Clarification clarification) { Bundle bundle = new Bundle(); bundle.putSerializable(EXTRA_CLARFICATION, clarification); ResponseClarificationFragment fragment = new ResponseClarificationFragment(); fragment.setArguments(bundle); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { clarification = (Clarification) getArguments().getSerializable( EXTRA_CLARFICATION); super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { rootView = inflater.inflate(R.layout.fgm_response_clarfication, container, false); initActionBar(); initWidget(); return rootView; } private void initActionBar() { vBack = rootView.findViewById(R.id.vBack); vTitle = (TextView) rootView.findViewById(R.id.vTitle); vSave = rootView.findViewById(R.id.vSave); vTitle.setText(clarification.getCategory()); vBack.setOnClickListener(this); vSave.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.vBack : getActivity().finish(); break; case R.id.vSave : FragmentManager fragment = getActivity() .getSupportFragmentManager(); ClarificationStatusDialogFragment dialogFragment = new ClarificationStatusDialogFragment(); dialogFragment.setTargetFragment( ResponseClarificationFragment.this, REQUEST_STATUS); dialogFragment.show(fragment, "ClarificationStatusDialogFragment"); break; default : break; } } private void initWidget() { vClarificationQuestion = (TextView) rootView .findViewById(R.id.vClarificationQuestion); vClarificationAnswer = (RichEditText) rootView .findViewById(R.id.vClarificationAnswer); vClarificationQuestion.setText(clarification.getQuestion()); vClarificationAnswer.setText(clarification.getAnswer()); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode != Activity.RESULT_OK) return; if (requestCode == REQUEST_STATUS) { int status = data.getIntExtra( ClarificationStatusDialogFragment.EXYTRA_RESULT_STATUS, 0); new UpdateCalrificationTask().execute(status); } super.onActivityResult(requestCode, resultCode, data); } class UpdateCalrificationTask extends AsyncTask<Integer, Void, Boolean> { ProgressDialog progressDialog; @Override protected void onPreExecute() { progressDialog = new ProgressDialog(getActivity(), ProgressDialog.STYLE_HORIZONTAL); progressDialog.setTitle("正在保存"); progressDialog.setMessage("拼命保存中..."); progressDialog.show(); super.onPreExecute(); } @Override protected void onPostExecute(Boolean result) { if (progressDialog.isShowing()) progressDialog.dismiss(); if (result) { Toast.makeText(getActivity(), "保存成功", Toast.LENGTH_SHORT) .show(); getActivity().finish(); } else { Toast.makeText(getActivity(), "保存失败", Toast.LENGTH_SHORT) .show(); } super.onPostExecute(result); } @Override protected Boolean doInBackground(Integer... params) { try { Base base = ClarificationManager.getInstance() .responseClarifications(clarification.getClarID(), vClarificationAnswer.getText().toString(), params[0]); return base.isSuccess(); } catch (AppException e) { e.printStackTrace(); return false; } } } }