package pyp.navigation.association; import java.lang.reflect.Constructor; import android.os.Parcel; import android.os.Parcelable; import android.support.v4.app.Fragment; /** * @Title: TabInfo * @Description: 单个选项卡类,每个选项卡包含名字,图标以及提示(可选,默认不显示) * @author qsuron * @date 2014-7-22 * @email admin@qiushurong.cn */ public class TabInfo implements Parcelable { private int id; private int icon; private String name = null; public boolean hasTips = false; public Fragment fragment = null; public boolean notifyChange = false; public Class<?> fragmentClass = null; public TabInfo(int id, String name, Class<?> clazz) { this(id, name, 0, clazz); } public TabInfo(int id, String name, boolean hasTips, Class<?> clazz) { this(id, name, 0, clazz); this.hasTips = hasTips; } public TabInfo(int id, String name, int iconid, Class<?> clazz) { super(); this.name = name; this.id = id; icon = iconid; fragmentClass = clazz; } public TabInfo(Parcel p) { this.id = p.readInt(); this.name = p.readString(); this.icon = p.readInt(); this.notifyChange = p.readInt() == 1; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void setIcon(int iconid) { icon = iconid; } public int getIcon() { return icon; } public Fragment createFragment() { if (fragment == null) { Constructor<?> constructor; try { constructor = fragmentClass.getConstructor(new Class[0]); fragment = (Fragment) constructor.newInstance(new Object[0]); } catch (Exception e) { e.printStackTrace(); } } return fragment; } public static final Parcelable.Creator<TabInfo> CREATOR = new Parcelable.Creator<TabInfo>() { public TabInfo createFromParcel(Parcel p) { return new TabInfo(p); } public TabInfo[] newArray(int size) { return new TabInfo[size]; } }; @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel p, int flags) { p.writeInt(id); p.writeString(name); p.writeInt(icon); p.writeInt(notifyChange ? 1 : 0); } }