1

so i created a simple facebook login app following the exact instructions from this video: https://www.youtube.com/watch?v=myWu-q8Q2NA&list=PLonJJ3BVjZW4E1wIRZvuXhbFRGWB1grmh

anyways i am able to sign in but unlike the video, when I sign in, I appear back at the login page, the login button does not change to the logout button, I click the login button, enter my login details, hit send, then a message says: You have already authorized "LoginExample (app name)". Then I appear back at the login with facebook button.

and on a similar note, I am trying to get a TextView to display a "Welcome", however it does not work, it only works when I do ' android:text="Welcome" '.

Below is my code in a fragment, I do setContentView(activity_fragment); in MainActivity. Again, the Login button appears but the TextView does not.

What is going wrong?

    public class MainFragment extends Fragment {

public TextView mTextDetails;
private AccessTokenTracker mtokentracker;
private ProfileTracker mprofiletracker;

CallbackManager mCallBackManager;
private FacebookCallback<LoginResult> mCallBack = new FacebookCallback<LoginResult>() {
    @Override
    public void onSuccess(LoginResult loginResult) {
        AccessToken accessToken = loginResult.getAccessToken();
        //TextView mTextDetails = (TextView)getView().findViewById(R.id.textView);
        Profile profile = Profile.getCurrentProfile();
        if (profile != null){
            mTextDetails.setText("Welcome " + profile.getName());
        }
        //setContentView(R.layout.activity_main);
    }

    @Override
    public void onCancel() {

    }

    @Override
    public void onError(FacebookException e) {

    }
};

public MainFragment() {
    //TextView mTextDetails = (TextView) getView().findViewById(R.id.textView);
    //mTextDetails.setText("Welcome");
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(getActivity().getApplicationContext());
    mCallBackManager = CallbackManager.Factory.create();

    AccessTokenTracker tracker = new AccessTokenTracker() {
        @Override
        protected void onCurrentAccessTokenChanged(AccessToken old, AccessToken niw) {
            Profile profile = Profile.getCurrentProfile();
            if (profile != null){
                mTextDetails.setText("welcome " + profile.getName());
            }
        }
    };

    ProfileTracker profileTracker = new ProfileTracker() {
        @Override
        protected void onCurrentProfileChanged(Profile old, Profile niw) {

        }
    };
    mtokentracker.startTracking();
    mprofiletracker.startTracking();
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.fragment_main, container, false);
}

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    LoginButton loginButton = (LoginButton)view.findViewById(R.id.login_button);
    //loginButton.setReadPermissions("user_friends");
    loginButton.setFragment(this);
    loginButton.registerCallback(mCallBackManager, mCallBack);
    TextView mTextDetails = (TextView)getView().findViewById(R.id.textView);
    mTextDetails.setText("Welcome");
}

@Override
public void onResume() {
    super.onResume();
    Profile profile = Profile.getCurrentProfile();
    if (profile != null){
        mTextDetails.setText("Welcome " + profile.getName());
    }
}

@Override
public void onStop() {
    super.onStop();
    mtokentracker.stopTracking();
    mprofiletracker.stopTracking();
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    mCallBackManager.onActivityResult(requestCode,resultCode,data);
}

}

Ayudh
  • 1,673
  • 1
  • 22
  • 55
  • look my answer here its work successfully. http://stackoverflow.com/questions/31239250/fb-login-android/31354083#31354083 – Harvi Sirja Jul 22 '15 at 09:37

0 Answers0