私はFacebookの活動の成功をログインするとき、私は2つの活動があります。それは自動オープンアクティビティ2であり、データと画像を転送します。しかし、それは動作しません。私を助けてください! 問題は、別のアクティビティ権を呼び出して、認証に成功した後にデータを転送する方法です。ログインfacebookボタン。私は他の投稿を読んできましたが、私を助けた解決策はありません。ログインfacebookが成功したときにアクティビティを開くには?
活動
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
setContentView(R.layout.activity_main);
callbackManager = CallbackManager.Factory.create();
login = (LoginButton)findViewById(R.id.login_button);
profile = (ProfilePictureView)findViewById(R.id.picture);
shareDialog = new ShareDialog(this);
share = (Button)findViewById(R.id.share);
details = (Button)findViewById(R.id.details);
login.setReadPermissions("public_profile email");
share.setVisibility(View.INVISIBLE);
details.setVisibility(View.INVISIBLE);
details_dialog = new Dialog(this);
details_dialog.setContentView(R.layout.dialog_details);
details_dialog.setTitle("Details");
details_txt = (TextView)details_dialog.findViewById(R.id.details);
email = (TextView) findViewById(R.id.email);
details.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
details_dialog.show();
}
});
if(AccessToken.getCurrentAccessToken() != null){
RequestData();
share.setVisibility(View.VISIBLE);
details.setVisibility(View.VISIBLE);
}
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(AccessToken.getCurrentAccessToken() != null) {
share.setVisibility(View.INVISIBLE);
details.setVisibility(View.INVISIBLE);
// profile.setProfileId(null);
// email.setText("");
}
}
});
accessTokenTracker = new AccessTokenTracker() {
@Override
protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken,
AccessToken currentAccessToken) {
if (currentAccessToken == null) {
//write your code here what to do when user logout
profile.setProfileId(null);
email.setText("");
}
}
};
share.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ShareLinkContent content = new ShareLinkContent.Builder().build();
shareDialog.show(content);
}
});
login.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
if(AccessToken.getCurrentAccessToken() != null){
RequestData();
share.setVisibility(View.VISIBLE);
details.setVisibility(View.VISIBLE);
}
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
Log.e(TAG, "onError: " + error.getMessage());
}
});
}
public void RequestData(){
GraphRequest request = GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
JSONObject json = response.getJSONObject();
try {
if (json != null) {
String text = "<b>Name :</b> " + json.getString("name") + "<br><br><b>Email :</b> " + json.getString("email") + "<br><br><b>Profile link :</b> " + json.getString("link");
details_txt.setText(Html.fromHtml(text));
profile.setProfileId(json.getString("id"));
email.setText(json.getString("email"));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,link,email,picture");
request.setParameters(parameters);
request.executeAsync();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
Intent intent=new Intent(MainActivity.this,Main2Activity.class);
String emails=email.getText().toString();
intent.putExtra("emails", emails);
intent.putExtra("BitmapImage", profile);
startActivity(intent);
}
}
activiti2
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
username = (TextView) findViewById(R.id.textView);
imageView = (ImageView) findViewById(R.id.imageView);
String value=getIntent().getStringExtra("emails");
username.setText(value);
}
ありがとうございます、それは動作していますが、私は2つのアクティビティの間でイメージトランスレーションイメージを与えることができますか? –
アクティビティ間でビットマップを転送することができます。これは、イメージをビットマップに変換し、アクティビティを通して転送できるように、オブジェクトをparcableにするためです。 – KDeogharkar
もし役に立つならば@tonyHoang。私の答えを受け入れる。 – KDeogharkar