我正在开发一个使用标签栏的应用程序。我跟着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]);
请指导我如何为选项卡分配图像和颜色。
答案 0 :(得分:3)
更改此行
photospec.setIndicator(tabTitle, imageIDsTemp[j]);
到
photospec.setIndicator(tabTitle, getResources().getDrawable(imageIDsTemp[j]));