我正在尝试创建一个小型应用程序,当用户按下后退按钮退出时,该应用程序会将用户在我的应用程序中所做的输入发布到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.");
}
}
}