package com.ntp.ui.course; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import android.widget.TextView; import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshListView; import com.ntp.adapter.CourseForumAdapter; import com.ntp.base.BaseFragment; import com.ntp.model.gson.CourseForumGson; import com.ntp.network.HttpRequestHelper; import com.ntp.network.okhttp.ObjectCallbackHandler; import com.ntp.ui.R; import com.ntp.util.AppConfig; import com.ntp.util.ErrorCodeUtil; import com.ntp.util.NetworkStateUtil; import com.squareup.okhttp.Request; import org.xutils.view.annotation.ContentView; import org.xutils.view.annotation.Event; import org.xutils.view.annotation.ViewInject; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * 课程讨论 */ @ContentView(R.layout.fragment_course_forum) public class CourseForumFragment extends BaseFragment implements PullToRefreshBase.OnRefreshListener2<ListView>{ @ViewInject(R.id.pull_to_refresh_listview) private PullToRefreshListView pullToRefreshView; private CourseForumAdapter courseForumAdapter; private List<CourseForumGson.ForumsEntity> courseForumGsonList=new ArrayList<CourseForumGson.ForumsEntity>(); private String code; private int currentPage=1;//默认加载第一页问题 private static final int REQUEST =207; private static final int REQUEST_COMMENT =208; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); code=getArguments().getString("code"); courseForumAdapter=new CourseForumAdapter(courseForumGsonList); pullToRefreshView.setAdapter(courseForumAdapter); pullToRefreshView.setMode(PullToRefreshBase.Mode.PULL_FROM_START);//下拉刷新 pullToRefreshView.setOnRefreshListener(this); pullToRefreshView.setRefreshing(true); } //下拉刷新 @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { loadData(true); } /** * 上拉刷新 * @param refreshView */ @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { loadData(false); } /** * 加载数据 * @param pullDownOrUp true 下拉,false上拉 */ private void loadData(final boolean pullDownOrUp){ if (!NetworkStateUtil.isNetworkConnected(getActivity())){ showToast(NetworkStateUtil.NO_NETWORK); return; } if (!pullDownOrUp){ currentPage++; }else { currentPage=1; } HttpRequestHelper.getInstance().getForumList(currentPage, 10, code,new ObjectCallbackHandler<CourseForumGson>() { @Override public void onFailure(Request request, IOException e, int response) { super.onFailure(request, e, response); pullToRefreshView.onRefreshComplete(); showToast(ErrorCodeUtil.SERVER_ERROR); } @Override public void onResponse(CourseForumGson courseForumGson) { super.onResponse(courseForumGson); if (courseForumGson != null) { if (pullDownOrUp) {//下拉刷新 currentPage = 1; courseForumAdapter.update(courseForumGson.getForums()); pullToRefreshView.setMode(PullToRefreshBase.Mode.BOTH); pullToRefreshView.onRefreshComplete(); } else { currentPage = courseForumGson.getCurrentPage(); for (CourseForumGson.ForumsEntity entity : courseForumGson.getForums()) { courseForumGsonList.add(entity); } courseForumAdapter.update(courseForumGsonList); pullToRefreshView.onRefreshComplete(); } } } }); } @Event(value = R.id.reply) private void onClick(View v) { switch (v.getId()){ case R.id.reply://发帖 //检查有没有登录 if(AppConfig.getLoadName(getActivity()).equals("")){ showToast("你尚未登录,不能评论"); break; } Intent intent=new Intent(getActivity(),CourseForumCommentActivity.class); intent.putExtra("name", AppConfig.getLoadName(getActivity())); intent.putExtra("code",code); startActivityForResult(intent,REQUEST_COMMENT); break; } } @Event(value = R.id.pull_to_refresh_listview,type = AdapterView.OnItemClickListener.class) private void onItemClick(AdapterView<?> parent, View view, int position, long id) { //提问用户 String name=((TextView)view.findViewById(R.id.name)).getText().toString(); //问题id String forumId=((TextView)view.findViewById(R.id.id)).getText().toString(); //内容 String content=((TextView)view.findViewById(R.id.content)).getText().toString(); //时间 String time=((TextView)view.findViewById(R.id.time)).getText().toString(); //数量 String reply=((TextView)view.findViewById(R.id.reply)).getText().toString(); Intent intent=new Intent(getActivity(), CourseForumReplyActivity.class); intent.putExtra("name",name); intent.putExtra("forumId", forumId); intent.putExtra("content",content); intent.putExtra("time",time); intent.putExtra("reply",reply); startActivityForResult(intent, REQUEST); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); //针对帖子评论 if (requestCode==REQUEST&&resultCode==CourseForumReplyActivity.RESULT_OK){ pullToRefreshView.setRefreshing(true); } //参加课程讨论,发帖 else if (requestCode==REQUEST_COMMENT&&resultCode==CourseForumCommentActivity.RESULT_OK){ pullToRefreshView.setRefreshing(); } } }