Facebook でログインして、ユーザーの情報を別のアクティビティに渡そうとしています 問題は、onclick イベントがフリーズして何もしないという意図で startActivity メソッドを実行したときです。
いくつかの文字列を保持する Serializable を実装するクラスを作成しました
次に、ユーザーがFacebookでログインすると、そのクラスのインスタンスを作成して、他のアクティビティに渡すことができます
コードは次のとおりです。
Session.openActiveSession(me, true, new StatusCallback()
{
@Override
public void call(Session session, SessionState state, Exception exception)
{
if(session.isOpened())
{
Request.executeMeRequestAsync(session, new Request.GraphUserCallback()
{
@Override
public void onCompleted(GraphUser user, Response response)
{
if(user!=null)
{
GraphLocation location= user.getLocation();
String address = location.getStreet()+","+location.getCity()+","+location.getState()+","+location.getCountry();
b.setVisibility(View.VISIBLE);
Fuser = new FBuser(
user.getName(),
user.getFirstName(),
user.getLastName(),
user.getBirthday(),
user.getId(),
user.getInnerJSONObject(),
user.getLink(),
address,
user.getUsername());
}
}
});
}
}
});
ご覧のとおり、ボタンを表示するように設定し、ユーザーがボタンをクリックすると、アクティビティを開始してユーザー オブジェクトを渡します。
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v)
{
final Login log = (Login) me;
final FBuser user = Fuser;
final Intent i = new Intent(getBaseContext(),Profile.class);
i.putExtra("user", user);
try
{
log.startActivity(i);
}
catch (Exception e)
{
e.getMessage();
}
}
});
}
しかし、ボタンがフリーズしても何も起こらず、何も起こりません。
なぜこれが起こったのでしょうか?