gpt4 book ai didi

android - 如何以编程方式显示和隐藏一项 Activity 的操作栏

转载 作者:行者123 更新时间:2023-12-01 17:00:37 25 4
gpt4 key购买 nike

我得到了一项 Activity ,其中我需要在登录界面上隐藏操作栏,然后一旦登录,它将显示操作栏。我只得到了一项 Activity 。如果我将 getActionBar 放在主要 Activity 上,则会出现错误。

代码如下:

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





}

最佳答案

对于扩展 Activity 的类:

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

对于扩展AppCompatActivity的类:

getSupportActionBar().hide();
getSupportActionBar().show();

关于android - 如何以编程方式显示和隐藏一项 Activity 的操作栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61509765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com