Activity Results by Request Code 区分两个,如何在代码中写Request Code for "loginWIthFB"
Differentiate two on Activity Results by Request Code, How to write Request Code for "loginWIthFB" in the code
public class MainActivity extends AppCompatActivity
implements LoginSocial.OnFragmentInteractionListener, Updates.OnFragmentInteractionListener,View.OnClickListener,GoogleApiClient.OnConnectionFailedListener {
private SignInButton sign;
private GoogleApiClient googleApiClient;
static final int Set_Ringtone = 0;
static final int PICK_CONTACT_REQUEST = 1;
private static final int RC_SIGN_IN = 9001;
private String TAG;
private Toolbar toolbar;
private TabLayout tabLayout;
private ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
setContentView(R.layout.activity_main);
initializeControls();
loginWithFB();
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
sign = (SignInButton)findViewById(R.id.sign_in_button);
sign.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId())
{
case R.id.sign_in_button:
sign();
break;
}
}
private void sign() {
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(googleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
}
private void handleResult(GoogleSignInResult result) {
Log.d(TAG, "handleSignInResult:" + result.isSuccess());
if (result.isSuccess()) {
// Signed in successfully, show authenticated UI.
GoogleSignInAccount acct = result.getSignInAccount();
updateUI(true);
} else {
// Signed out, show unauthenticated UI.
updateUI(false);
}
}
private void updateUI(boolean b) {
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new LoginSocial(), "ONE");
adapter.addFragment(new Updates(), "TWO");
viewPager.setAdapter(adapter);
}
@Override
public void onFragmentInteraction(Uri uri) {
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
TextView txtStatus;
LoginButton fb_login;
CallbackManager callbackManager;
private void initializeControls(){
callbackManager = CallbackManager.Factory.create();
txtStatus = (TextView) findViewById(R.id.txtStatus);
fb_login = (LoginButton) findViewById(R.id.fb_login);
}
private void loginWithFB(){
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
txtStatus.setText("Login Success");
}
@Override
public void onCancel() {
txtStatus.setText("Login Cancelled.");
}
@Override
public void onError(FacebookException error) {
txtStatus.setText("Login Error:"+error.getMessage());
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleResult(result);
}
您可以使用FacebookSdk.isFacebookRequestCode()
检查请求代码是否来自Facebook。
protected void onActivityResult(int requestCode, int resultCode, Intent data)
super.onActivityResult(requestCode, resultCode, data);
if (FacebookSdk.isFacebookRequestCode(requestCode) {
// Facebook
callbackManager.onActivityResult(requestCode, resultCode, data);
} else if (requestCode == RC_SIGN_IN) {
// Google
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleResult(result);
}
}
public class MainActivity extends AppCompatActivity
implements LoginSocial.OnFragmentInteractionListener, Updates.OnFragmentInteractionListener,View.OnClickListener,GoogleApiClient.OnConnectionFailedListener {
private SignInButton sign;
private GoogleApiClient googleApiClient;
static final int Set_Ringtone = 0;
static final int PICK_CONTACT_REQUEST = 1;
private static final int RC_SIGN_IN = 9001;
private String TAG;
private Toolbar toolbar;
private TabLayout tabLayout;
private ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
setContentView(R.layout.activity_main);
initializeControls();
loginWithFB();
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
sign = (SignInButton)findViewById(R.id.sign_in_button);
sign.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId())
{
case R.id.sign_in_button:
sign();
break;
}
}
private void sign() {
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(googleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
}
private void handleResult(GoogleSignInResult result) {
Log.d(TAG, "handleSignInResult:" + result.isSuccess());
if (result.isSuccess()) {
// Signed in successfully, show authenticated UI.
GoogleSignInAccount acct = result.getSignInAccount();
updateUI(true);
} else {
// Signed out, show unauthenticated UI.
updateUI(false);
}
}
private void updateUI(boolean b) {
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new LoginSocial(), "ONE");
adapter.addFragment(new Updates(), "TWO");
viewPager.setAdapter(adapter);
}
@Override
public void onFragmentInteraction(Uri uri) {
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
TextView txtStatus;
LoginButton fb_login;
CallbackManager callbackManager;
private void initializeControls(){
callbackManager = CallbackManager.Factory.create();
txtStatus = (TextView) findViewById(R.id.txtStatus);
fb_login = (LoginButton) findViewById(R.id.fb_login);
}
private void loginWithFB(){
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
txtStatus.setText("Login Success");
}
@Override
public void onCancel() {
txtStatus.setText("Login Cancelled.");
}
@Override
public void onError(FacebookException error) {
txtStatus.setText("Login Error:"+error.getMessage());
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleResult(result);
}
您可以使用FacebookSdk.isFacebookRequestCode()
检查请求代码是否来自Facebook。
protected void onActivityResult(int requestCode, int resultCode, Intent data)
super.onActivityResult(requestCode, resultCode, data);
if (FacebookSdk.isFacebookRequestCode(requestCode) {
// Facebook
callbackManager.onActivityResult(requestCode, resultCode, data);
} else if (requestCode == RC_SIGN_IN) {
// Google
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleResult(result);
}
}