package cn.coderss.fragment; import java.util.ArrayList; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import net.tsz.afinal.http.AjaxCallBack; import net.tsz.afinal.http.AjaxParams; import cn.coderss.activity.ProblemAddActivity; import cn.coderss.adapter.NoteAdapter; import cn.coderss.adapter.ProblemAdapter; import cn.coderss.api.FssApi; import cn.coderss.bean.PorblemAddCateBean; import cn.coderss.bean.ProblemBean; import cn.coderss.bean.ProblemDetailBean; import cn.coderss.edu.R; import cn.coderss.pulltorefresh.PullToRefreshBase; import cn.coderss.pulltorefresh.PullToRefreshListView; import cn.coderss.pulltorefresh.PullToRefreshBase.OnRefreshListener; import cn.coderss.ui.BootstrapButton; import cn.coderss.util.L; import cn.coderss.util.PreferenceConstants; import cn.coderss.util.PreferenceUtils; import android.annotation.SuppressLint; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.LinearLayout; import android.widget.AdapterView.OnItemClickListener; import android.widget.LinearLayout.LayoutParams; import android.widget.ListView; import android.widget.RadioButton; import android.widget.Spinner; import android.widget.TextView; @SuppressLint({ "NewApi", "ValidFragment" }) public class ProblemFragment extends Fragment implements OnItemClickListener { View mview; Context mcontext; ListView listview; ProblemAdapter adapter; ArrayList<ProblemBean> datalist = new ArrayList<ProblemBean>(); ProgressDialog dia; private PullToRefreshListView mPullListView; int page = 0; int select = 0; AlertDialog detail_dia; View dia_view; ProblemDetailBean detail_bean; Spinner cateGory; Spinner Problem_cate; public String pid; public String selectId = ""; boolean flag = false; public ProblemFragment(Context mcontext) { super(); this.mcontext = mcontext; dia = new ProgressDialog(mcontext); dia.setTitle("提 示"); dia.setMessage("正在加载数据......."); dia.setCancelable(false); detail_dia = new AlertDialog.Builder(mcontext).create(); dia_view = LayoutInflater.from(mcontext).inflate( R.layout.view_problem_detail, null); detail_dia.setView(dia_view); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { LayoutInflater li = LayoutInflater.from(mcontext); mview = li.inflate(R.layout.fragment_problem, null); return mview; } /** * 载入分类的数据 */ public void loadCate() { FssApi.getHttp().get(FssApi.GETTYPE, new AjaxCallBack<Object>() { @Override public void onSuccess(Object t) { super.onSuccess(t); final PorblemAddCateBean bean = new Gson().fromJson( t.toString(), PorblemAddCateBean.class); if (bean != null) { ArrayList<String> cates = bean.getCust_names(); L.i("分类数据:" + cates.toString()); ArrayAdapter<String> adapter = new ArrayAdapter<String>( mcontext, android.R.layout.simple_spinner_item, cates); cateGory.setAdapter(adapter); cateGory.setSelection(select); cateGory.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { String myselectId = bean.getCust_ids().get(arg2); if (!selectId.equals(myselectId)) { selectId = myselectId; select = arg2; loadData(true, true); } } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }); } } }); } public void loadData(final boolean refresh, final boolean search) { L.i("我访问的页面" + FssApi.PROBLEMINDEX + "&page=" + page); if (refresh) { dia.show(); datalist.removeAll(datalist); page = 0; } String url; String params; if (search) { url = FssApi.PROBLEMINDEX; params = url + "&page=" + page + "&pid=" + selectId; } else { url = FssApi.PROBLEMINDEX; params = url + "&page=" + page; } FssApi.getHttp().get(params, new AjaxCallBack<Object>() { @Override public void onStart() { super.onStart(); } @Override public void onSuccess(Object t) { super.onSuccess(t); // 消除等待框 dia.dismiss(); // 开始载入分类 loadCate(); ArrayList<ProblemBean> tmp = new Gson().fromJson(t.toString(), new TypeToken<ArrayList<ProblemBean>>() { }.getType()); for (ProblemBean problemBean : tmp) { datalist.add(problemBean); } // 刷新页面 adapter.notifyDataSetChanged(); } }); } public void initView() { mPullListView = (PullToRefreshListView) mview .findViewById(R.id.listview); mPullListView.setPullLoadEnabled(false); mPullListView.setScrollLoadEnabled(true); mPullListView.setPullRefreshEnabled(false); mPullListView.setOnRefreshListener(new OnRefreshListener<ListView>() { @Override public void onPullDownToRefresh( PullToRefreshBase<ListView> refreshView) { loadData(true, false); mPullListView.onPullDownRefreshComplete(); } @Override public void onPullUpToRefresh( PullToRefreshBase<ListView> refreshView) { page++; loadData(false, false); mPullListView.onPullUpRefreshComplete(); } }); listview = mPullListView.getRefreshableView(); adapter = new ProblemAdapter(datalist, mcontext); listview.setAdapter(adapter); listview.setOnItemClickListener(this); cateGory = (Spinner) mview.findViewById(R.id.tag); Problem_cate = (Spinner) mview.findViewById(R.id.category); } @Override public void onResume() { super.onResume(); initView(); loadData(true, false); LinearLayout ll = (LinearLayout) ((Activity) mcontext) .findViewById(R.id.titleView); // 个人中心按钮 BootstrapButton person = new BootstrapButton(mcontext); person.mytext = "个人中心"; person.bootstrapType = "success"; person.iconLeft = "fa-android"; person.layoutWidth = 310; person.initialise(null); ll.addView(person); // 提问去按钮 LinearLayout ll2 = (LinearLayout) ((Activity) mcontext) .findViewById(R.id.titleView2); BootstrapButton toPro = new BootstrapButton(mcontext); toPro.mytext = "提问去"; toPro.iconLeft = "fa-android"; toPro.layoutWidth = 250; toPro.initialise(null); toPro.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent it = new Intent(mcontext, ProblemAddActivity.class); startActivity(it); } }); ll2.addView(toPro); } @Override public void onPause() { super.onPause(); LinearLayout ll = (LinearLayout) ((Activity) mcontext) .findViewById(R.id.titleView); LinearLayout ll2 = (LinearLayout) ((Activity) mcontext) .findViewById(R.id.titleView2); ll.removeAllViews(); ll2.removeAllViews(); } @Override public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) { // 取出当前的模型 ProblemBean bean = datalist.get(position); dia.show(); FssApi.getHttp().get(FssApi.PROBLEMDETAIL + "&id=" + bean.id, new AjaxCallBack<Object>() { @Override public void onSuccess(Object t) { super.onSuccess(t); dia.dismiss(); detail_bean = new Gson().fromJson(t.toString(), ProblemDetailBean.class); // 模型赋值 TextView username = (TextView) dia_view .findViewById(R.id.username); TextView addtime = (TextView) dia_view .findViewById(R.id.addtime); TextView tag = (TextView) dia_view .findViewById(R.id.tag); TextView problem = (TextView) dia_view .findViewById(R.id.problem); TextView replyname = (TextView) dia_view .findViewById(R.id.replyname); TextView replytime = (TextView) dia_view .findViewById(R.id.replytime); TextView answer = (TextView) dia_view .findViewById(R.id.answer); final BootstrapButton sc = (BootstrapButton) dia_view .findViewById(R.id.sc); sc.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { AjaxParams p = new AjaxParams(); p.put("uid", PreferenceUtils.getPrefString( mcontext, PreferenceConstants.ID, "30")); p.put("qid", detail_bean.id); if (flag) { p.put("vv", "n"); } else { p.put("vv", "y"); } flag = !flag; FssApi.getHttp().post(FssApi.PROBLEMSC, p, new AjaxCallBack<Object>() { @Override public void onSuccess(Object t) { super.onSuccess(t); L.i(t.toString()); if (t.equals("OK")) { if (flag) { sc.setText("取消收藏"); } else { sc.setText("收藏"); } } } }); } }); username.setText("用户名:" + detail_bean.username); addtime.setText("提示时间:" + detail_bean.addtime); tag.setText("标签:" + detail_bean.cname); problem.setText("问题:" + detail_bean.content); replytime.setText("回复时间:" + detail_bean.rtime); replyname.setText("回复人:" + detail_bean.tname); answer.setText("回复:" + detail_bean.replay); detail_dia.show(); } @Override public void onFailure(Throwable t, String strMsg) { super.onFailure(t, strMsg); dia.dismiss(); } }); } }