我想存储多个类来创建多个选项卡,并希望避免重复代码,我的代码是:
Tab tab = actionBar
.newTab()
.setText("Tab 1")
.setTabListener(
new TabListener<OverView>(this, "Tab1", OverView.class));
actionBar.addTab(tab);
tab = actionBar
.newTab()
.setText("Tab 2")
.setTabListener(
new TabListener<LifeStyle>(this, "Tab2",
LifeStyle.class));
actionBar.addTab(tab);
tab = actionBar
.newTab()
.setText("Tab 3")
.setTabListener(
new TabListener<RealState>(this, "Tab3",
RealState.class));
actionBar.addTab(tab);
这是我的构造函数
public TabListener(SherlockFragmentActivity activity, String tag,
Class<T> clz) {
mActivity = activity;
mTag = tag;
mClass = clz;
}
我正在做这样的事情
for (int i = 0; i < classesArr.length; i++) {
tab = actionBar
.newTab()
.setText("Tab 1")
.setTabListener(
new TabListener<classesArr[i]>(this, "Tab1", classesArr[i]));
actionBar.addTab(tab);
}
但我的编译器不会编译代码
构造函数MainActivity.TabListener(SherlockFragmentActivity,String,Class)引用缺少的类型classesArr
问:我想存储那个,最终的参数类要存储在数组中,我想运行循环来创建标签,直到它的长度。
答案 0 :(得分:0)
private final Class<?>[] classArray = new Class<?>[]{OverView.class, LifeStyle.class, RealState.class};
喜欢那个?
答案 1 :(得分:0)
创建一个类对象的静态数组
public static Class<?> classesArr[]={asd.class,cdsc.class};
创建一个这样的循环:
for(int i=0;i<calssesArr.length;i++){
//here create your tabs
}
如果您希望在应用程序的每个位置共享此类数组,则以静态方式使用它:
public static Class<?> classesArr[]={asd.class,cdsc.class};
如果您需要静态的类数,可以使用它作为final:
public final Class<?> classesArr[]={asd.class,cdsc.class};
如果您想将其作为Arraylist传递,那么您可以将其用作:
ArrayList<Class> classArr=new ArrayList<Class>();
classArr.add(yourClass.class);
然后循环它:
for(Class<?> cls:classArr){
//here create your tabs using cls
}
答案 2 :(得分:0)
ArrayList<Class> modelDataList = new ArrayList<Class>();
modelDataList.add(AndroidDatePicker.class);
这是你可以添加类并在任何你想要的地方使用它们的方法