在Tab中更改TextView的文本颜色

时间:2014-07-01 12:45:31

标签: android tabs

在我的Android应用程序中,我有一个TabHost,其中包含多个标签。要创建每个选项卡,我调用一个名为createTabView的函数,如下所示:

private static View createTabView(final Context context, final String text, int layoutId) {
    View view = LayoutInflater.from(context).inflate(layoutId, null);
    TextView tv = (TextView) view.findViewById(R.id.tabsText);
    if (tv != null) {
        tv.setText(text.toUpperCase(Locale.getDefault()));
        if(text.toLowerCase().equals("special")){
            tv.setTextColor(R.color.gold);
        }
    }

    return view;
}

如果字符串是"特殊"上面的内容基本上会将相应的文字添加到TextView并将TextView的颜色加到黄金上。

然而,问题在于它并没有像现在这样呈现黄金。它呈现深蓝色。

我可以确认R.color.gold绝对是黄金。我在很多地方都用过它。我也尝试过系统颜色,但它们也不起作用。它总是显示为深蓝色。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

使用 -

textView.setTextColor(getResources().getColor(R.color.gold));

答案 1 :(得分:0)

使用此代码

  for(int i=0;i<tabHost.getTabWidget().getChildCount();i++)
    {
          tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#colorcode"));
        TextView tv = (TextView)   tabHost.getTabWidget().getChildAt(i).findViewById(android.R.id.title); //Unselected Tabs
        tv.setTextColor(Color.parseColor("#colorcode"));    

    }
    tabHost.getTabWidget().setCurrentTab(0);
      tabHost.getTabWidget().getChildAt(0).setBackgroundColor(Color.parseColor("#colorcode"));
    TextView tv = (TextView)   tabHost.getCurrentTabView().findViewById(android.R.id.title); //for Selected Tab
    tv.setTextColor(Color.parseColor("#colorcode"));      
}

和这个方法

  @Override
   public void onTabChanged(String arg0) {

    for(int i=0;i<tabHost.getTabWidget().getChildCount();i++)
    {
        tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#colorcode"));
        TextView tv = (TextView) tabHost.getTabWidget().getChildAt(i).findViewById(android.R.id.title); //Unselected Tabs
        tv.setTextColor(Color.parseColor("#colorcode"));
    }

    tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundColor(Color.parseColor("#colorcode"));
    TextView tv = (TextView) tabHost.getCurrentTabView().findViewById(android.R.id.title); //for Selected Tab
    tv.setTextColor(Color.parseColor("#colorcode"));
}