我正在尝试创建一个小型应用程序,当用户按下后退按钮退出时,该应用程序会将用户在我的应用程序中所做的输入发布到Facebook。我已经有SSO和其他所有设置,问题是它无法将PostDialogListener识别为有效的侦听器。说不存在,我正在尝试使用的代码

@Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
     if ((keyCode == KeyEvent.KEYCODE_BACK)) {
         Log.d(this.getClass().getName(), "back button pressed");

         fb.dialog(getApplicationContext(), "stream.publish", new PostDialogListener());

         Toast t=Toast.makeText(getApplicationContext(), " Back pressed ", Toast.LENGTH_LONG);
         t.show();
     }
     return super.onKeyDown(keyCode, event);
 }


我也尝试将对话框代码放在其他位置,但是同样的结果,PostDialogListener无法识别。

最佳答案

您可能不会从示例中导入它。将这些类添加到您的项目中:

public abstract class BaseDialogListener implements DialogListener {
    @Override
    public void onFacebookError(FacebookError e) {
        e.printStackTrace();
    }
    @Override
    public void onError(DialogError e) {
        e.printStackTrace();
    }
    @Override
    public void onCancel() {
    }
}

public class PostDialogListener extends BaseDialogListener {
    @Override
    public void onComplete(Bundle values) {
        final String postId = values.getString("post_id");
        if (postId != null) {
            showToast("Message posted on the wall.");
        } else {
            showToast("No message posted on the wall.");
        }
    }
}

10-08 06:06