Java 对话框内的Facebook登录按钮
如果用户已登录,我希望在分区上显示某些内容。但是,如果用户没有登录,我想显示一个对话框,提示用户登录。我还想在此对话框中显示facebook登录按钮 但是,对话框中的登录按钮似乎不起作用。当我把它放在活动布局中时,它确实起作用了 有没有办法让它在对话框中正常工作 以下是xml对话框:Java 对话框内的Facebook登录按钮,java,android,facebook,mobile,Java,Android,Facebook,Mobile,如果用户已登录,我希望在分区上显示某些内容。但是,如果用户没有登录,我想显示一个对话框,提示用户登录。我还想在此对话框中显示facebook登录按钮 但是,对话框中的登录按钮似乎不起作用。当我把它放在活动布局中时,它确实起作用了 有没有办法让它在对话框中正常工作 以下是xml对话框: <?xml version="1.0" encoding="UTF-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/a
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/heart"
android:layout_width="80dp"
android:layout_height="70dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="70dp"
android:background="@drawable/favorite_dialog"/>
<TextView
android:id="@+id/question_favorites"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:layout_below="@+id/heart"
android:layout_marginTop="10dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="20dp"
android:layout_centerHorizontal="true"
android:textStyle="bold"
android:textSize="20sp"/>
<TextView
android:id="@+id/explanation_favorites"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:layout_below="@+id/question_favorites"
android:layout_marginTop="20dp"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp"
android:textSize="18sp"
android:textStyle="italic"
android:layout_centerHorizontal="true"/>
<com.facebook.widget.LoginButton
android:id="@+id/authButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_above="@+id/button"
android:layout_centerHorizontal="true"
/>
<Button
android:id="@+id/button"
android:layout_height="40dp"
android:layout_width="200dp"
android:text="Cancelar"
android:textStyle="bold"
android:textSize="18sp"
android:layout_marginTop="10dp"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="30dp"
android:background="@drawable/cancel"/>
</RelativeLayout>
这个对话框显示在onCreate方法上,它包含一个取消按钮,取消它
我将感谢任何帮助。非常感谢。我想出来了,它很简单,但不那么优雅 我所做的是把facebook登录按钮放在主布局中,隐藏起来。然后,我在对话框按钮上设置了一个侦听器,并在其中添加了facebookLogin.performClick 将点击重定向到facebook登录侦听器
无论如何谢谢你 我想出来了,它很简单,但不那么优雅 我所做的是把facebook登录按钮放在主布局中,隐藏起来。然后,我在对话框按钮上设置了一个侦听器,并在其中添加了facebookLogin.performClick 将点击重定向到facebook登录侦听器
无论如何谢谢你 我也犯了同样的错误。但最后我还是设法让它发挥作用: 所以:MainActivity打开了一个片段。WelcomeFragment打开LoginDialog我自己的对话框。在LoginDialog中,我有facebookLogin按钮。 在MainActivity中,根据facebook的教程,我拥有了我应该拥有的一切:UiLifecycleHelper uiHelper实例,它在onResume、onActivityResult、onPause、onDestroy和onSaveInstanceState中调用。LoginDialog中的登录按钮已通过以下方式初始化:
LoginButton authButton = (LoginButton) findViewById(R.id.facebookLogin);
authButton.setReadPermissions(Arrays.asList("email"));
authButton.setFragment(welcomeFragment);
但在我将onActivityResult添加到WelcomeFragment之前,这是不起作用的,就像在MainActivity中一样:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
((MainActivity)getActivity()).uiHelper.onActivityResult(requestCode, resultCode, data);
}
此外,还对其进行了描述:
在身份验证流期间,默认情况下,结果返回到主活动。您的活动需要通过重写onActivityResult方法来处理结果。要允许片段接收onActivityResult调用而不是activity,可以在LoginButton实例上调用setFragment方法。我也遇到了同样的错误。但最后我还是设法让它发挥作用: 所以:MainActivity打开了一个片段。WelcomeFragment打开LoginDialog我自己的对话框。在LoginDialog中,我有facebookLogin按钮。 在MainActivity中,根据facebook的教程,我拥有了我应该拥有的一切:UiLifecycleHelper uiHelper实例,它在onResume、onActivityResult、onPause、onDestroy和onSaveInstanceState中调用。LoginDialog中的登录按钮已通过以下方式初始化:
LoginButton authButton = (LoginButton) findViewById(R.id.facebookLogin);
authButton.setReadPermissions(Arrays.asList("email"));
authButton.setFragment(welcomeFragment);
但在我将onActivityResult添加到WelcomeFragment之前,这是不起作用的,就像在MainActivity中一样:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
((MainActivity)getActivity()).uiHelper.onActivityResult(requestCode, resultCode, data);
}
此外,还对其进行了描述:
在身份验证流期间,默认情况下,结果返回到主活动。您的活动需要通过重写onActivityResult方法来处理结果。要允许片段接收onActivityResult调用而不是activity调用,您可以在LoginButton实例上调用setFragment方法。您可以发布代码吗?我刚刚更新了它,谢谢!你能发布你的代码吗?我刚刚更新了,谢谢!