package br.com.androidzin.launchablesitens;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import com.actionbarsherlock.app.ActionBar.Tab;
import com.actionbarsherlock.app.ActionBar.TabListener;
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.app.SherlockFragment;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.app.SherlockListFragment;
public abstract class FragmentInfo extends SherlockListFragment implements TabListener {
private Fragment mFragment;
private static final String TAG = "Tab";
private List<LaunchableItem> data;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if(data == null) data = getSampleData();
ArrayAdapter<LaunchableItem> adapter = new LaunchableItemAdapter(getActivity(), R.layout.item, this.data, (OnItemCheckedListener) getActivity());
setListAdapter(adapter);
return super.onCreateView(inflater, container, savedInstanceState);
}
protected abstract List<LaunchableItem> getSampleData();
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
Log.d(TAG, "OnTabReselected");
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
Log.d(TAG, "OnTabSelected");
if (mFragment == null) {
try {
mFragment = this.getClass().newInstance();
} catch (java.lang.InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
ft.replace(android.R.id.content, mFragment);
} else {
ft.attach(mFragment);
}
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
Log.d(TAG, "OnTabUnselected");
if(mFragment != null){
ft.detach(mFragment);
}
}
public List<LaunchableItem> getData() {
return data;
}
public void setData(List<LaunchableItem> data) {
this.data = data;
}
}