在RecyclerView上的onClick上分享Facebook上的内容

时间:2016-04-05 05:06:41

标签: android onclick facebook-share

我正在尝试使用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);
    }

有人可以指导我完成这件事。我在社交应用上制作应用和分享内容方面经验不足。任何帮助都将受到高度赞赏。

1 个答案:

答案 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应用程序上分享。如果应用程序未安装在设备上,则将在浏览器上打开共享