package com.roboo.like.google.fragments;
import java.util.LinkedList;
import android.os.Bundle;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.Loader;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ListView;
import com.roboo.like.google.R;
import com.roboo.like.google.WebViewActivity;
import com.roboo.like.google.adapters.WeatherAdapter;
import com.roboo.like.google.async.WeatherAsyncTaskLoader;
import com.roboo.like.google.models.CityItem;
import com.roboo.like.google.models.WeatherItem;
public class WeatherFragment extends BaseWithProgressFragment implements LoaderCallbacks<LinkedList<WeatherItem>>
{
/** 向 ViewGroup 中添加view时动画持续时间 */
private static final String ARG_CITY_ITEM = "city_item";
private ListView mListView;
private LinkedList<WeatherItem> mData;
private WeatherAdapter mAdapter;
private View mFooterView;
private CityItem mCityItem;
public static WeatherFragment newInstance(CityItem cityItem)
{
WeatherFragment fragment = new WeatherFragment();
Bundle bundle = new Bundle();
bundle.putSerializable(ARG_CITY_ITEM, cityItem);
fragment.setArguments(bundle);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.fragment_weather, null);// TODO
mListView = (ListView) view.findViewById(R.id.dlv_list);
mFooterView = createFooterView();
mListView.addFooterView(mFooterView);
return view;
}
public void onActivityCreated(Bundle savedInstanceState)
{
System.out.println("KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK");
super.onActivityCreated(savedInstanceState);
mCityItem = (CityItem) getArguments().getSerializable(ARG_CITY_ITEM);
if (mData == null)
{
getActivity().getSupportLoaderManager().restartLoader(0, getArguments(), this);
}
}
private View createFooterView()
{
Button btnToWebView = new Button(getActivity());
btnToWebView.setId(R.id.btn_webview);
btnToWebView.setClickable(true);
btnToWebView.setText("查看原文");
btnToWebView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20);
btnToWebView.setBackgroundResource(R.drawable.list_item_selector);
btnToWebView.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
WebViewActivity.actionWebView(getActivity(), mCityItem.cUrl, mCityItem.cName + "天气");
}
});
return btnToWebView;
}
@Override
public Loader<LinkedList<WeatherItem>> onCreateLoader(int id, Bundle args)
{
System.out.println(" onCreateLoader ");
return new WeatherAsyncTaskLoader(getActivity(), mCityItem.cUrl);
}
@Override
public void onLoadFinished(Loader<LinkedList<WeatherItem>> loader, LinkedList<WeatherItem> data)
{
System.out.println(" onLoadFinished ");
mProgressBar.setVisibility(View.GONE);
if (null != data && data.size() > 0)
{
mData = data;
mAdapter = new WeatherAdapter(getActivity(), mData);
mListView.setAdapter(mAdapter);
}
}
public void onLoaderReset(Loader<LinkedList<WeatherItem>> loader)
{
}
}