我正在尝试使用RecyclerView中的onClick方法在facebook上分享应用内容。在onclick方法之前,Recyclerview工作正常并正确显示数据。
所有的依赖关系和其他东西都是在gradle文件等中完成的...我面临的问题是,一旦用户点击分享按钮,就会生成新的意图,我传递了相关的参数但是活动并没有。执行任何动作。
以下是打开Facebook(HomeActivity)onCreate()方法的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
setContentView(R.layout.home);
if (savedInstanceState == null) {
Bundle extras = getIntent().getExtras();
if(extras == null) {
imageURL= null;
position=0;
} else {
imageURL= extras.getString("imageURL");
//position = extras.getInt("position");
}
} else {
imageURL= (String) savedInstanceState.getSerializable("imageURL");
//position= (int) savedInstanceState.getSerializable("position");
}
callbackManager = CallbackManager.Factory.create();
// loginDataBaseAdapter = new LoginDataBaseAdapter(this);
// loginDataBaseAdapter = loginDataBaseAdapter.open();
facebookLogin = (LoginButton) findViewById(R.id.login_button);
facebookLogin.registerCallback(callbackManager, callback);
}
这就是我在回调方法中所做的事情,它成功登录但后来崩溃了。
public FacebookCallback<LoginResult> callback = new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// Toast.makeText(getApplicationContext(),"On facebook",Toast.LENGTH_LONG).show();
AccessToken accessToken = loginResult.getAccessToken();
ShareLinkContent content = new ShareLinkContent.Builder()
.setContentUrl(Uri.parse(imageURL))
.build();
ShareDialog.show(HomeActivity.this, content);
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
Profile profile = Profile.getCurrentProfile();
textView.setText("Connection Lost ! Pleasr Try Again :" + profile.getName());
}
};
这就是onClick()方法的编写方式:
@Override
public void onClick(View v) {
Intent intent = new Intent(context.getApplicationContext(),HomeActivity.class);
intent.putExtra("position",getAdapterPosition());
intent.putExtra("imageURL",uri);
context.startActivity(intent);
}
有人可以指导我完成这件事。我在社交应用上制作应用和分享内容方面经验不足。任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
您可以使用
直接在Facebook上分享 try {
Intent intent1 = new Intent();
intent1.setClassName("com.facebook.katana", "com.facebook.katana.activity.composer.ImplicitShareIntentHandler");
intent1.setAction(Intent.ACTION_SEND);
intent1.setType("text/plain");
intent1.putExtra(Intent.EXTRA_TEXT, "any text");
startActivity(intent1);
} catch (Exception e) {
Intent intent = new Intent(Intent.ACTION_SEND);
String sharerUrl = "https://www.facebook.com/sharer/sharer.php?u=" + "any constant";
intent = new Intent(Intent.ACTION_VIEW, Uri.parse(sharerUrl));
intent.putExtra(Intent.EXTRA_TEXT, "any text");
startActivity(intent);
}
即。尝试在Facebook应用程序上分享。如果应用程序未安装在设备上,则将在浏览器上打开共享