2015-11-27 3 views
1

Пожалуйста, найдите код ниже:Как изменить seleted вкладку (активной или неактивной вкладки) цвет фона и цвет текста prgramatically

// 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; 
      } 
     } 

enter image description here

+0

См. Мое решение ниже: - –

ответ

0

Используйте эти строки кода ... `

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

     } 
    }); 
+0

Я хочу изменить текст вкладки и цвет фона, а не цвет страницы –

+0

, но на вкладках, как я могу установить на клик-слушатель, это рендеринг wi th viewpager –

+0

Нет ли слушателей для вкладки? на слушателе вкладки вы можете выполнить свою операцию –

Смежные вопросы