2017-07-07 1 views
0
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); 


     } 

Antwort

1

Sie FacebookSdk.isFacebookRequestCode() wenn der Anforderungs-Code von Facebook ist zu überprüfen, schreiben können.

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); 
    } 
} 
+0

Hallo, ich kann meine App im Emulator nicht öffnen. Ich habe das Gefühl, dass es ein Problem mit Tablayout gibt. Ich habe den Code ohne Tablayout ausprobiert und es hat funktioniert. Aber in Tablayout öffnet es sich nicht. Bitte helfen Sie mit. Vielen Dank im Voraus –

+0

Ich empfehle Ihnen, eine neue Frage zu stellen, da dies ein anderes Problem als die ursprüngliche Frage ist. Stellen Sie sicher, dass Sie das Fehlerprotokoll enthalten, um das Problem leichter identifizieren zu können. Ich werde mein Bestes versuchen, um zu helfen. – 345

+0

Danke. Ich habe meine Frage zu diesem Link https://stackoverflow.com/questions/45000222/unable-to-open-the-app-in-emulator-due-to-tablayout-i-guess?noredirect=1#comment76974676_45000222 geschrieben. Vielen Dank –

Verwandte Themen