如何在android中存储类的数组

时间:2013-12-23 13:47:34

标签: android

我想存储多个类来创建多个选项卡,并希望避免重复代码,我的代码是:

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

问:我想存储那个,最终的参数类要存储在数组中,我想运行循环来创建标签,直到它的长度。

3 个答案:

答案 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);

这是你可以添加类并在任何你想要的地方使用它们的方法