/**
* @author UFreedom
* @since 2014 2014-10-4 下午10:33:57
* @see www.52yummy.com
* <br>
* sunfreedom@sina.cn
* <br>
* Copyright (C) 2014 UFreedom. All Rights Reserved.
*/
package com.codecomb.views;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.Loader;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.ProgressBar;
import com.codecomb.infrastructure.asynctask.DataLoader;
import com.codecomb.module.contests.Contest;
import com.codecomb.module.contests.ContestManager;
import com.codecomb.ufreedom.R;
import com.codecomb.views.adapter.ContestsAdapter;
public class ContestsFragment extends Fragment
implements
LoaderCallbacks<List<Contest>> {
private static final int LOAD_CONTESTS = 0;
private static final String TAG = ContestsFragment.class.getSimpleName();;
private View rootView;
private ListView lvContest;
private ContestsAdapter contestsAdapter;
private LoaderManager loaderManager;
private List<Contest> contests;
public static ContestsFragment newInstance() {
return new ContestsFragment();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
contests = new ArrayList<Contest>();
contestsAdapter = new ContestsAdapter(getActivity(), contests);
loaderManager = getLoaderManager();
loaderManager.initLoader(LOAD_CONTESTS, null, this);
Log.e(TAG, "ContestsFragment - onCreate");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.fgm_contests, container, false);
lvContest = (ListView) rootView.findViewById(R.id.lvContests);
lvContest.setAdapter(contestsAdapter);
lvContest.setEmptyView(rootView.findViewById(R.id.vEmptyView));
initListener();
return rootView;
}
private void initListener() {
lvContest.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Contest contest = (Contest) lvContest
.getItemAtPosition(position);
Intent intent = new Intent(getActivity(),
ClarificationActivity.class);
intent.putExtra(ClarificationFragment.EXTRA_CONTEST_ID,
contest.getContestID());
startActivity(intent);
}
});
}
private static class ContestsLoader extends DataLoader<List<Contest>> {
public ContestsLoader(Context context) {
super(context);
}
@Override
public List<Contest> loadInBackground() {
return ContestManager.getInstance().getManagedContest(1);
}
}
@Override
public Loader<List<Contest>> onCreateLoader(int arg0, Bundle arg1) {
// TODO Auto-generated method stub
return new ContestsLoader(getActivity());
}
@Override
public void onLoadFinished(Loader<List<Contest>> arg0, List<Contest> list) {
contests.addAll(list);
updateUI();
}
private void updateUI() {
contestsAdapter.notifyDataSetChanged();
}
@Override
public void onLoaderReset(Loader<List<Contest>> arg0) {
}
}