0

Facebook3.0のフラグメントを使用してログインしようとしています。以下に示すように、クリック時の方法に応答する画像ボタンをフラグメントに作成しました。


OnCreateViewおよびOnClickViewコード:

   @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup group, Bundle saved){

    View v = inflater.inflate(R.layout.mefrag, group, false);
    ImageButton button = (ImageButton) v.findViewById(R.id.facebooklogin); 
    button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            loginToFacebook();

        }
    });
    return v;

}

logintoFacebookメソッドは、次のアクティビティを開始しません。fbダイアログが表示され、詳細が受け入れられてから、フラグメントが再び表示されます。このコードを別のアクティビティでテストしましたが、正常に機能します。ここで機能しない理由がわかりません。


Facebookログインコード:

public void loginToFacebook(){

    Session.openActiveSession(getActivity(), true, new Session.StatusCallback() {

      @Override
      public void call(Session session, SessionState state, Exception exception) {
        if (session.isOpened()) {

            Log.d("LOGIN", "activated session");
          // make request to the /me API
          Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {

            // callback after Graph API response with user object
            @Override
            public void onCompleted(GraphUser user, Response response) {
              if (user != null) {

                Log.d("LOGIN", "activated on complete");

                  fbuserid = user.getId();
                  fbusername = user.getFirstName();  

                  SharedPreferences fbDetails = getActivity().
                      getSharedPreferences("fbDetails", Context.MODE_PRIVATE);
                  SharedPreferences.Editor editor = fbDetails.edit();
                  editor.putString(FB_USER, user.getFirstName());
                  editor.putString(FB_ID,user.getId());  
                  editor.putBoolean("logged in", true);
                  editor.commit();


                 loginFacebookKinveyUser();


                  Intent i = new 
                        Intent("com.example.chartviewer.MyArtistsActivity");


                  startActivityForResult(i, 1);

              }
            }
          });
        }
      }
    });

}

何かご意見は?

4

0 に答える 0