package cn.coderss.fragment;
import java.util.ArrayList;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import net.tsz.afinal.http.AjaxCallBack;
import cn.coderss.activity.MainActivity;
import cn.coderss.activity.VideoDetialActivity;
import cn.coderss.adapter.VideoAdapter;
import cn.coderss.api.FssApi;
import cn.coderss.bean.CateBean;
import cn.coderss.edu.R;
import cn.coderss.pulltorefresh.PullToRefreshBase;
import cn.coderss.pulltorefresh.PullToRefreshBase.OnRefreshListener;
import cn.coderss.pulltorefresh.PullToRefreshListView;
import cn.coderss.util.L;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Gallery;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.Spinner;
import android.widget.SpinnerAdapter;
@SuppressLint({ "ValidFragment", "NewApi" })
public class MainFragment extends Fragment implements OnItemClickListener {
View mview;
Context mcontext;
ListView listview;
VideoAdapter adapter;
ArrayList<CateBean> datalist = new ArrayList<CateBean>();
AlertDialog mydia;
private PullToRefreshListView mPullListView;
ProgressDialog dia;
// 搜索栏目
SearchView search;
public MainFragment(Context mcontext) {
super();
this.mcontext = mcontext;
dia = new ProgressDialog(mcontext);
dia.setTitle("提 示");
dia.setCancelable(false);
dia.setMessage("数据正在加载......");
// 设置搜索栏
setSearchBar();
}
public void setSearchBar() {
search = (SearchView) ((Activity) mcontext).findViewById(R.id.search);
search.setOnSearchClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
L.i("我即将搜索");
}
});
}
public void loadCatData(final boolean refresh) {
if (refresh) {
datalist.removeAll(datalist);
}
FssApi.getHttp().get(FssApi.VIDEOCAT, new AjaxCallBack<Object>() {
@Override
public void onStart() {
super.onStart();
}
@Override
public void onSuccess(Object t) {
super.onSuccess(t);
dia.dismiss();
// 获取到分类数据进行json解析
ArrayList<CateBean> tmp = new Gson().fromJson(t.toString(),
new TypeToken<ArrayList<CateBean>>() {
}.getType());
// 更新
for (CateBean cateBean : tmp) {
datalist.add(cateBean);
}
// 现在获取到分类数据,准备初始化view
adapter.notifyDataSetChanged();
}
});
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
LayoutInflater li = LayoutInflater.from(mcontext);
mview = li.inflate(R.layout.fragment_main, null);
loadCatData(true);
initView();
return mview;
}
public void initView() {
mPullListView = (PullToRefreshListView) mview
.findViewById(R.id.VideoList);
mPullListView.setPullLoadEnabled(false);
mPullListView.setScrollLoadEnabled(true);
mPullListView.setOnRefreshListener(new OnRefreshListener<ListView>() {
@Override
public void onPullDownToRefresh(
PullToRefreshBase<ListView> refreshView) {
dia.show();
loadCatData(true);
mPullListView.onPullDownRefreshComplete();
}
@Override
public void onPullUpToRefresh(
PullToRefreshBase<ListView> refreshView) {
mydia = new AlertDialog.Builder(mcontext).setTitle("提 示")
.setMessage("已经到底端了\n没有数据了")
.setNegativeButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int i) {
mydia.dismiss();
}
}).show();
mPullListView.onPullUpRefreshComplete();
}
});
mPullListView.doPullRefreshing(true, 500);
listview = mPullListView.getRefreshableView();
listview.setOnItemClickListener(this);
adapter = new VideoAdapter(datalist, mcontext);
listview.setAdapter(adapter);
listview.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Intent it = new Intent(mcontext, VideoDetialActivity.class);
CateBean bean = datalist.get(arg2);
it.putExtra("tid", bean.id);
startActivity(it);
}
}