Android:背景颜色和图像到标签栏的选项卡

时间:2014-03-09 08:13:37

标签: android android-layout tabs android-tabhost android-tabs

我正在开发一个使用标签栏的应用程序。我跟着This Link.我根据应用程序做了一些更改:我的标签文本意味着标题来自SQLite数据库,我将其存储在一个数组中并循环传递给TabSpec。

代码如下:

DataBaseHelper dataBaseHelper = new DataBaseHelper(this);
    try {
    dataBaseHelper.createDataBase();
} catch (IOException e) {
    e.printStackTrace();
}

    dataBaseHelper.openDataBase();
Cursor c = dataBaseHelper.getDataFromDataBase();
String[] name = new String[c.getCount()];
int i=0;

if(c.getCount() > 0){
    if(c.moveToFirst()){
        do{
            name[i] = c.getString(0);
            i++;
        } while(c.moveToNext());
    }
}

TabHost tabHost = getTabHost();

for(int j = 0; j < name.length; j++){
    String tabTitle = name[j];
    TabSpec photospec = tabHost.newTabSpec(tabTitle);
    photospec.setIndicator(tabTitle, null);
    Intent photosIntent = new Intent (this, PhotosActivity. class). addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    photosIntent.putExtra("name", tabTitle);
    photospec.setContent(photosIntent);

    tabHost.addTab(photospec);
}

此代码运行正常。但现在想将backgroungd设置为我的标签。所以为此,我把一些inmages n drawable文件夹并制作了一个数组:

Integer[] imageIDsTemp= new Integer[]{
        R.drawable.tb01,
        R.drawable.tb02,
        R.drawable.tb03,
        R.drawable.tb04,
        R.drawable.tb05,
        R.drawable.tb06,
        R.drawable.tb07,
        R.drawable.tb08,
        R.drawable.tb09,
        R.drawable.tb10,
        R.drawable.tb11,
        R.drawable.tb12,
};

但如何将此数组传递给

TabSpec photospec = tabHost.newTabSpec(tabTitle);

这样做时我很反感。我尝试的是:

TabSpec photospec = tabHost.newTabSpec(tabTitle);
photospec.setIndicator(tabTitle, imageIDsTemp[j]);

请指导我如何为选项卡分配图像和颜色。

1 个答案:

答案 0 :(得分:3)

更改此行

photospec.setIndicator(tabTitle, imageIDsTemp[j]);

photospec.setIndicator(tabTitle, getResources().getDrawable(imageIDsTemp[j]));