Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to programmatically show and hide action bar on one activity

Tags:

android

i got this one activity wherein i need to hide actionbar on the login interface then once login it will show the action bar.i got one activity only. if i put getActionBar on the main activity it gives me error.

heres the code:

@SuppressLint("NewApi") public class MainActivity extends Activity {   ViewPager viewPager; PagerAdapter adapter; ProgressDialog pDialog; ImageView imgLogo; Menu menu1;  ImageView header; ImageView footer;   int[] bookCover = new int[] {                       R.drawable.image1,                      R.drawable.image2,                     R.drawable.image3,                      };   @SuppressLint("NewApi") @Override protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_main);     setupFacebookConnect(savedInstanceState);      imgLogo = (ImageView)findViewById(R.id.logo);     share = (ImageView) findViewById(R.id.share);      // Locate the ViewPager in viewpager_main.xml     viewPager = (ViewPager) findViewById(R.id.pager);     // Pass results to ViewPagerAdapter Class     adapter = new ViewPagerAdapter(this, bookCover);     // Binds the Adapter to the ViewPager     viewPager.setAdapter(adapter);      final OnPageChangeListener pageChangeListener = new ViewPager.SimpleOnPageChangeListener() {          @SuppressLint("NewApi")         @Override         public void onPageSelected(int position) {              final int pos = position;             share.setOnClickListener(new OnClickListener() {                  @Override                 public void onClick(View v) {                      switch(pos) {                     case 0:                          break;                     case 1:                           break;                     case 2:                          break;                                                                   case 3:                          break;                                                                    }                  }             });          // When changing pages, reset the action bar actions since they are dependent          // on which page is currently active. An alternative approach is to have each          // fragment expose actions itself (rather than the activity exposing actions),          // but for simplicity, the activity provides the actions in this sample.                    invalidateOptionsMenu();          }      };           viewPager.setOnPageChangeListener(pageChangeListener);     pageChangeListener.onPageSelected(0);       facebook_connect = (Button) findViewById(R.id.facebook_login);     facebook_connect.setOnClickListener(new OnClickListener() {          @Override         public void onClick(View arg0) {             if (isFacebookConnected()) {                 disConnectFacebook();             } else {                 connectFacebook();             }          }     });       // Shared Preferences     mSharedPreferences = getApplicationContext().getSharedPreferences("MyPref", 0);  }   @SuppressLint({ "InlinedApi", "NewApi" })     @Override     public boolean onCreateOptionsMenu(Menu menu) {          this.menu1 = menu;          super.onCreateOptionsMenu(menu);         getMenuInflater().inflate(R.menu.main, menu);          menu.findItem(R.id.action_previous).setEnabled(viewPager.getCurrentItem() > 0);          // Add either a "next" or "finish" button to the action bar, depending on which page         // is currently selected.         MenuItem item = menu.add(Menu.NONE, R.id.action_next, Menu.NONE,(viewPager.getCurrentItem() == adapter.getCount() - 1)                         ? R.string.action_finish                         : R.string.action_next);          item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);          return true;      }      @Override     public boolean onOptionsItemSelected(MenuItem item) {          int itemId = item.getItemId();         if (itemId == R.id.action_previous) {             // Go to the previous step in the wizard. If there is no previous step,             // setCurrentItem will do nothing.             viewPager.setCurrentItem(viewPager.getCurrentItem() - 1);             return true;         } else if (itemId == R.id.action_next) {             // Advance to the next step0.0 in the wizard. If there is no next step, setCurrentItem             // will do nothing.             viewPager.setCurrentItem(viewPager.getCurrentItem() + 1);             return true;         }          return super.onOptionsItemSelected(item);     }   private Session.StatusCallback statusCallback = new FBSessionStatus();  public void setupFacebookConnect(Bundle savedInstanceState) {     Settings.addLoggingBehavior(LoggingBehavior.INCLUDE_ACCESS_TOKENS);      Session session = Session.getActiveSession();     if (session == null) {         if (savedInstanceState != null) {             session = Session.restoreSession(this, null, statusCallback,                     savedInstanceState);         }         if (session == null) {             session = new Session(this);         }         Session.setActiveSession(session);         if (session.getState().equals(SessionState.CREATED_TOKEN_LOADED)) {             session.openForRead(new Session.OpenRequest(this)                     .setCallback(statusCallback));         }     } }  public boolean isFacebookConnected() {     Session session = Session.getActiveSession();     return (session.isOpened()) ? true  : false;  }  public void connectFacebook() {     Session session = Session.getActiveSession();     if (!session.isOpened() && !session.isClosed()) {         getActionBar().show();         session.openForRead(new Session.OpenRequest(this)                 .setCallback(statusCallback));            } else {     Session.openActiveSession(this, true, statusCallback);      } }  @Override public void onStart() {     super.onStart();     Session.getActiveSession().addCallback(statusCallback); }  @Override public void onStop() {     super.onStop();     Session.getActiveSession().removeCallback(statusCallback); }  @Override protected void onSaveInstanceState(Bundle outState) {     super.onSaveInstanceState(outState);     Session session = Session.getActiveSession();     Session.saveSession(session, outState); }  @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {     super.onActivityResult(requestCode, resultCode, data);     Session.getActiveSession().onActivityResult(this, requestCode,             resultCode, data); }  public class FBSessionStatus implements Session.StatusCallback {      @Override         public void call(Session session, SessionState state, Exception exception) {             onSessionStateChange(session, state, exception);         } }  public void disConnectFacebook() {     Session session = Session.getActiveSession();     if (!session.isClosed()) {         session.closeAndClearTokenInformation();         viewPager.setVisibility(View.INVISIBLE);         MenuItem item1 = menu1.findItem(R.id.action_next);         item1.setVisible(false);         MenuItem item2 = menu1.findItem(R.id.action_previous);         item2.setVisible(false);            imgLogo.setVisibility(View.VISIBLE);         //btnLoginTwitter.setVisibility(View.VISIBLE);          share.setVisibility(View.INVISIBLE);      }  }  private void onSessionStateChange(Session session, SessionState state, Exception exception) {         // Check if the user is authenticated and         // a deep link needs to be handled.         if (state.isOpened()) {              MenuItem item1 = menu1.findItem(R.id.action_next);             item1.setVisible(true);             MenuItem item2 = menu1.findItem(R.id.action_previous);             item2.setVisible(true);             //getActionBar().show();              share.setVisibility(View.VISIBLE);              //btnLoginTwitter.setVisibility(View.INVISIBLE);             //btnShare.setVisibility(View.VISIBLE);                   viewPager.setVisibility(View.VISIBLE);              imgLogo.setVisibility(View.INVISIBLE);            }      }  public void shareImage(String name, String caption, String desc, String link, String picture ) {      Bundle params = new Bundle();     params.putString("name", name);     params.putString("caption", caption);     params.putString("description", desc);     params.putString("link", link);     //params.putString("picture", "https://www.facebook.com/photo.php?fbid=10203610233686079&set=a.10203610230766006.1073741829.1523023247&type=1&theater");     params.putString("picture", picture);      WebDialog feedDialog = (         new WebDialog.FeedDialogBuilder(MainActivity.this,             Session.getActiveSession(),             params))         .setOnCompleteListener(new OnCompleteListener() {              @Override             public void onComplete(Bundle values,                 FacebookException error) {                 if (error == null) {                     // When the story is posted, echo the success                     // and the post Id.                     final String postId = values.getString("post_id");                     if (postId != null) {                         Toast.makeText(MainActivity.this,                             "Successfuly posted!",                             Toast.LENGTH_SHORT).show();                     } else {                         // User clicked the Cancel button                         Toast.makeText(MainActivity.this,                              "Publish cancelled",                              Toast.LENGTH_SHORT).show();                     }                 } else if (error instanceof FacebookOperationCanceledException) {                     // User clicked the "x" button                     Toast.makeText(MainActivity.this,                          "Publish cancelled",                          Toast.LENGTH_SHORT).show();                 } else {                     // Generic, ex: network error                     Toast.makeText(MainActivity.this,                         "Error posting story",                          Toast.LENGTH_SHORT).show();                 }             }            })         .build();         feedDialog.show();      }      @SuppressWarnings("unused")     private boolean isSubsetOf(Collection<String> subset, Collection<String> superset) {         for (String string : subset) {             if (!superset.contains(string)) {                 return false;             }         }         return true;      }      } 
like image 207
jovs Avatar asked Apr 06 '14 08:04

jovs


People also ask

How do I remove a toolbar from a specific activity?

NoActionBar”. If we want to remove the ActionBar only from specific activities, we can create a child theme with the AppTheme as it's parent, set windowActionBar to false and windowNoTitle to true and then apply this theme on an activity level by using the android:theme attribute in the AndroidManifest. xml file.

What is action bar android?

The app bar, also known as the action bar, is one of the most important design elements in your app's activities, because it provides a visual structure and interactive elements that are familiar to users.

What is Toolbar android?

In Android applications, Toolbar is a kind of ViewGroup that can be placed in the XML layouts of an activity. It was introduced by the Google Android team during the release of Android Lollipop(API 21). The Toolbar is basically the advanced successor of the ActionBar.


2 Answers

For class extending Activity :

getActionBar().hide(); getActionBar().show(); 

For class extending AppCompatActivity :

getSupportActionBar().hide(); getSupportActionBar().show(); 
like image 96
prat3ik-patel Avatar answered Sep 23 '22 05:09

prat3ik-patel


Very simple.

getActionbar().hide(); getActionbar().show(); 
like image 20
agamov Avatar answered Sep 21 '22 05:09

agamov