Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何以图形方式更改选定选项卡(活动或非活动选项卡)的背景颜色和文本颜色_Android_Tabs - Fatal编程技术网

Android 如何以图形方式更改选定选项卡(活动或非活动选项卡)的背景颜色和文本颜色

Android 如何以图形方式更改选定选项卡(活动或非活动选项卡)的背景颜色和文本颜色,android,tabs,Android,Tabs,请查找以下代码: // this is on create method for creating view @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); System.out.println("DirectoryScreen.onCreate()

请查找以下代码:

  // this is on create method for creating view  


@Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                System.out.println("DirectoryScreen.onCreate()");
                HINT_PREFIX =  getString(R.string.search_by) + " ";

                requestWindowFeature(Window.FEATURE_NO_TITLE);

                setContentView(R.layout.screen_tabs_directory);
        // getting data from intent
                String mTitle = getIntent().getStringExtra(Keys.EXTRA_BANNER_TITLE);
                mTitle = mTitle == null ? getString(R.string.directory) : mTitle;
                if (isSideBarLayout()) {
                    doSideBarHeader(mTitle, DirectoryScreen.this);
                } else {
                    doStandardHeader(mTitle, getString(R.string.home), DirectoryScreen.this);
                }

// this is for activate action bar
                activateActionBar(false,false,true);   

                Cache.ADVISOR_LABEL = getString(R.string.directory_advisor_label);
                Cache.ADVISOR_PRIMARY_LABEL = getString(R.string.directory_primary_advisor_label);
                isPrivateModule = getIntent().getBooleanExtra(Keys.MODULE_IS_PRIVATE, false);

                Dictionary d = Modules.DIRECTORY.getVersionDictionary();
                Cache.DIRECTORY_BASE_URL = d.getValue("url") + "/audience/";

                if ( Cache.DIRECTORY_DICTIONARY == null )
                    uploadDirectoryDictionary();

                if ( Cache.DIRECTORY_DICTIONARY != null ) 
                    isPrivateModule = "true".equals(Cache.DIRECTORY_DICTIONARY.getValue("private"));            

                String savedSearchText = Persistence.getInstance().getString(Keys.DIRECTORY_SEARCH_TEXT);
                String savedChoice = Persistence.getInstance().getString(Keys.DIRECTORY_SEARCH_SCOPING_FIELD);


                Dictionary[] fields = d.getChildArray("scopingFields");
                if(fields == null) {
                    fields = d.getChildArray("Items");
                    if(fields == null) {
                        findViewById(R.id.header_optional_view_id).setVisibility(View.GONE);
                    }
                }
                fields = null == fields ? new Dictionary[0] : fields;

                for (Dictionary field : fields) {
                    String s = field.getValue("displayString");
                    Cache.DIRECTORY_KEY_MAP.put(s, field.getValue("key"));
                }

                if ( Cache.SELECTED_DIRECTORY_OPTION == null ) {
                    Cache.SELECTED_DIRECTORY_OPTION = fields.length > 0 ? fields[0].getValue("displayString") : "";
                }

                final int oveflowColor = Style.getActionbarOverflowColor(this);
                ColorFilter filter = new LightingColorFilter( oveflowColor, 0x000000 );
                ImageView mFilterView = (ImageView) findViewById(R.id.header_optional_view_id);
                Drawable filterIcon = getResources().getDrawable( R.drawable.ic_action_filter ); 
                filterIcon.setColorFilter(filter);
                mFilterView.setImageDrawable(filterIcon); 
                if ( fields.length > 1 )
                    mFilterView.setVisibility(View.VISIBLE);
                else
                    mFilterView.setVisibility(View.GONE);
                mFilterView.setOnClickListener(DirectoryScreen.this);

                ImageView mSearchCancelView = (ImageView) findViewById(R.id.directory_cancel_search_button);
                Drawable cancelIcon = getResources().getDrawable( R.drawable.ic_action_clear ); 
                cancelIcon.setColorFilter(filter);
                mSearchCancelView.setImageDrawable(cancelIcon);  
                mSearchCancelView.setOnClickListener(DirectoryScreen.this);     

                mSearchView = (EditText) findViewById(R.id.directory_search_id);
                mSearchView.setTextColor(Style.getTextBannerColor(this));
                mSearchView.setHint(fields.length > 0 ? HINT_PREFIX + Cache.SELECTED_DIRECTORY_OPTION : HINT_PREFIX + getString(R.string.name_by));     
                mSearchView.setOnEditorActionListener(this);
                if (!U.isEmpty(savedSearchText)) {
                    mSearchView.setText(savedSearchText);
                }       


                mPagerAdapter = new MyPagerAdapter(getSupportFragmentManager());

                mViewPager = (ViewPager) findViewById(R.id.pager);
                mViewPager.setAdapter(mPagerAdapter);

                mSlidingTabLayout = (SlidingTabLayout) findViewById(R.id.sliding_tabs);
                mSlidingTabLayout.setTextColor(oveflowColor);
                mSlidingTabLayout.setDistributeEvenly(true);
                mSlidingTabLayout.setBackgroundDrawable(getBackground());
                // setting tab indicator color
                mSlidingTabLayout.setCustomTabColorizer(new SlidingTabLayout.TabColorizer() {
                    @Override
                    public int getIndicatorColor(int position) {

                        return oveflowColor;
                    }
                });

                // this is for on page change listener
                mSlidingTabLayout.setOnPageChangeListener(new OnPageChangeListener() {

                    @Override
                    public void onPageSelected(int arg0) {
                        // TODO Auto-generated method stub              
                    }

                    @Override
                    public void onPageScrolled(int position, float arg1, int arg2) {
                        // TODO Auto-generated method stub


                        int activeColor = Style.getTextButtonNormalColor(DirectoryScreen.this);
                        int disableColor = Style.getTextButtonFocusColor(DirectoryScreen.this);
                         for(int i=0; i < mViewPager.getChildCount(); i++){
                             System.out.println("index of view in viewpager --->"+i);
                                View tv = (View) mViewPager.getChildAt(i);
                                if(i == position){
                                       //tv.setTextColor(Color.WHITE);
                                    tv.setBackgroundColor(activeColor);
                                } else {
                                    //tv.setTextColor(Color.GREY);
                                    tv.setBackgroundColor(disableColor);
                                }
                            }               

                    }

                    @Override
                    public void onPageScrollStateChanged(int arg0) {
                        // TODO Auto-generated method stub

                    }
                });


                mSlidingTabLayout.setViewPager(mViewPager);
                mSearchView.setBackgroundColor(Color.WHITE);


            }
    // this is my viewpager adapter for creating tabs on fragment
    public class MyPagerAdapter extends FragmentPagerAdapter {

            private LinkedHashMap<String, Fragment> mPagerFragmentMap; 
            private final String[] mFragmentViews = { getString(R.string.directory_all_contacts) , getString(R.string.directory_my_contacts) };
    // set fragment to my page
            public MyPagerAdapter(FragmentManager fm) {
                super(fm);
                mPagerFragmentMap = new LinkedHashMap<String, Fragment>();
            }

            @Override
            public CharSequence getPageTitle(int position) {
                return mFragmentViews[position];
            }

            @Override
            public int getCount() {
                return mFragmentViews.length;
            }

            @Override
            public Fragment getItem (int position) {
                System.out.println("DirectoryScreen.MyPagerAdapter.getItem() position is-->"+ position);
                Fragment rc = null;
                String s = ((EditText) findViewById(R.id.directory_search_id)).getText().toString();
                Bundle args = null;
                switch (position)
                {
                case 0:             
                    if ( mPagerFragmentMap.containsKey(mFragmentViews[0])) {
                        System.out.println("case 0 if");
                        rc = mPagerFragmentMap.get(mFragmentViews[0]);
                    }
                    else {
                        System.out.println("case 0 else");
                        DirectoryFragment df = new DirectoryFragment();
                        args = new Bundle();
                        args.putInt("position", position);
                        args.putString("query", s);
                        df.setArguments(args);
                        rc = df;
                        mPagerFragmentMap.put(mFragmentViews[0], df);
                    }
                    break;
                case 1: 
                    if ( mPagerFragmentMap.containsKey(mFragmentViews[1])) {
                        System.out.println("case 1 if");
                        rc = mPagerFragmentMap.get(mFragmentViews[1]);
                    }
                    else {
                        System.out.println("case 1 else");
                        MyContactsDirectoryFragment cf = new MyContactsDirectoryFragment();
                        args = new Bundle();
                        args.putInt("position", position);
                        args.putString("query", s);
                        cf.setArguments(args);
                        rc = cf;
                        mPagerFragmentMap.put(mFragmentViews[1], cf);
                        break;
                    }
                }
                return rc;
            }
        }
//这是关于创建视图的创建方法
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
System.out.println(“DirectoryScreen.onCreate()”;
HINT_PREFIX=getString(R.string.search_by)+“”;
requestWindowFeature(窗口。功能\u无\u标题);
setContentView(R.layout.screen\u tabs\u目录);
//从intent获取数据
字符串mTitle=getIntent().getStringExtra(key.EXTRA\u BANNER\u TITLE);
mTitle=mTitle==null?getString(R.string.directory):mTitle;
if(isSideBarLayout()){
doSideBarHeader(mTitle,DirectoryScreen.this);
}否则{
doStandardHeader(mTitle、getString(R.string.home)、DirectoryScreen.this);
}
//这是用于激活操作栏的
activateActionBar(假、假、真);
Cache.ADVISOR\u LABEL=getString(R.string.directory\u ADVISOR\u LABEL);
Cache.ADVISOR\u PRIMARY\u LABEL=getString(R.string.directory\u PRIMARY\u ADVISOR\u LABEL);
isPrivateModule=getIntent().getBooleanExtra(Keys.MODULE_是私有的,false);
Dictionary d=Modules.DIRECTORY.getVersionDictionary();
Cache.DIRECTORY_BASE_URL=d.getValue(“URL”)+“/audition/”;
if(Cache.DIRECTORY\u DICTIONARY==null)
uploadDirectoryDictionary();
if(Cache.DIRECTORY\u DICTIONARY!=null)
isPrivateModule=“true”。等于(Cache.DIRECTORY\u DICTIONARY.getValue(“private”);
String savedSearchText=Persistence.getInstance().getString(key.DIRECTORY\u SEARCH\u TEXT);
String savedChoice=Persistence.getInstance().getString(key.DIRECTORY\u SEARCH\u SCOPING\u字段);
字典[]字段=d.getChildArray(“作用域字段”);
如果(字段==null){
字段=d.getChildArray(“项”);
如果(字段==null){
findViewById(R.id.header\u可选\u view\u id).setVisibility(view.GONE);
}
}
fields=null==fields?新字典[0]:字段;
for(字典字段:字段){
字符串s=field.getValue(“displayString”);
Cache.DIRECTORY\u KEY\u MAP.put(s,field.getValue(“KEY”);
}
如果(Cache.SELECTED\u DIRECTORY\u OPTION==null){
Cache.SELECTED_DIRECTORY_OPTION=fields.length>0?字段[0]。getValue(“displayString”):“”;
}
final int oveflowColor=Style.getActionbarOverflowColor(此);
ColorFilter filter=新的LightingColorFilter(oveflowColor,0x000000);
ImageView mFilterView=(ImageView)findViewById(R.id.header\u可选\u视图\u id);
Drawable filterIcon=getResources().getDrawable(R.Drawable.ic_action_filter);
filterIcon.setColorFilter(过滤器);
mFilterView.setImageDrawable(filterIcon);
如果(fields.length>1)
mFilterView.setVisibility(View.VISIBLE);
其他的
mFilterView.setVisibility(View.GONE);
mFilterView.setOnClickListener(DirectoryScreen.this);
ImageView mSearchCancelView=(ImageView)findViewById(R.id.directory\u cancel\u search\u按钮);
Drawable cancelIcon=getResources().getDrawable(R.Drawable.ic\u action\u clear);
cancelIcon.setColorFilter(过滤器);
mSearchCancelView.setImageDrawable(取消图标);
mSearchCancelView.setOnClickListener(DirectoryScreen.this);
mSearchView=(EditText)findViewById(R.id.directory\u search\u id);
mSearchView.setTextColor(Style.getTextBannerColor(this));
mSearchView.setHint(fields.length>0?提示前缀+缓存。所选目录选项:提示前缀+获取字符串(R.string.name\u by));
mSearchView.setOnEditorActionListener(此);
如果(!U.isEmpty(savedSearchText)){
mSearchView.setText(savedSearchText);
}       
mPagerAdapter=新的MyPagerAdapter(getSupportFragmentManager());
mViewPager=(ViewPager)findViewById(R.id.pager);
mViewPager.setAdapter(mPagerAdapter);
mSlidingTabLayout=(SlidingTabLayout)findViewById(R.id.sliding_选项卡);
mSlidingTabLayout.setTextColor(oveflowColor);
mSlidingTabLayout.setDistributeEvenly(true);
mSlidingTabLayout.setBackgroundDrawable(getBackgroundDrawable());
//设置选项卡指示器颜色
mSlidingTabLayout.setCustomTabColorizer(新的SlidingTabLayout.TabColorizer()){
@凌驾
公共内部getIndicatorColor(内部位置){
返回颜色;
}
});
//这是用于页面更改侦听器的
mSlidingTabLayout.setOnPageChangeListener(新的OnPageChangeListener(){
@凌驾
已选择页面上的公共无效(int arg0){
//TODO自动生成的方法存根
}
@凌驾
已滚动页面上的公共无效(整数位置、浮点arg1、整数arg2){
//TODO自动生成的方法存根
int activeColor=Style.getTextButtonNormalColor(DirectoryScreen.this);
int disableColor=Style.getTextButtonFocusColor(DirectoryScreen.this);
  ALL_CONTACTS_VIEW.setOnClickListener(new View.OnClickListener() {
       @Override
     public void onClick(View v) {

       ALL_CONTACTS_VIEW.setBackgroundResource(R.drawable.ALL_CONTACTS_VIEW_ACTIVE);
       MY_CONTACT_VIEW.setBackgroundResource(R.drawable.MY_CONTACT_VIEW_INACTIVE);

      }
    });

  MY_CONTACT_VIEW.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

       MY_CONTACT_VIEW.setBackgroundResource(R.drawable.MY_CONTACT_VIEW_ACTIVE);
       ALL_CONTACTS_VIEW.setBackgroundResource(R.drawable.ALL_CONTACTS_VIEW_IN_ACTIVE);

      }
    });