gpt4 book ai didi

java - Facebook 登录使应用程序崩溃并出现 java.lang.ClassCastException : LoginActivity must implement OnFragmentInteractionListener

转载 作者:搜寻专家 更新时间:2023-11-01 07:58:11 24 4
gpt4 key购买 nike

我是 Android 新手,我正在遵循 Facebook SDK 指南 (https://developers.facebook.com/docs/android/login-with-facebook/v2.0)

这里是一切,请在回答之前尝试运行:https://github.com/fabianhjr/devf-android/tree/facebook-login

这是登录 Activity :

package mx.devf.androidassistant;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;

public class LoginActivity extends FragmentActivity {
private FacebookFragment facebookFragment;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);

if (savedInstanceState == null) {
// Add the fragment on initial activity setup
facebookFragment = new FacebookFragment();
getSupportFragmentManager()
.beginTransaction()
.add(android.R.id.content, (Fragment) facebookFragment)
.commit();
} else {
// Or set the fragment from restored state info
facebookFragment = (FacebookFragment) getSupportFragmentManager()
.findFragmentById(android.R.id.content);
}
}
}

当我尝试运行我的代码时,我得到以下跟踪

07-12 12:56:53.220  17178-17178/com.fabiahjr.myapplication E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.fabiahjr.myapplication, PID: 17178
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fabiahjr.myapplication/mx.devf.androidassistant.LoginActivity}: java.lang.ClassCastException: mx.devf.androidassistant.LoginActivity@655a9a18 must implement OnFragmentInteractionListener
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
Caused by: java.lang.ClassCastException: mx.devf.androidassistant.LoginActivity@655a9a18 must implement OnFragmentInteractionListener
at mx.devf.androidassistant.FacebookFragment.onAttach(FacebookFragment.java:86)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:898)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1121)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1484)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:571)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171)
at android.app.Activity.performStart(Activity.java:5241)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2157)
           at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5001)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)

最佳答案

LoginActivity must implement OnFragmentInteractionListener

解决方案在您的问题标题中。您的 Activity 必须实现 OnFragmentInteractionListener

public class LoginActivity extends FragmentActivity
implements FacebookFragment.OnFragmentInteractionListener{

// implement methods of the interface here

添加:

看一下FacebookFragment的源码:

/**
* A simple {@link Fragment} subclass.
* Activities that contain this fragment must implement the
* {@link FacebookFragment.OnFragmentInteractionListener} interface
* to handle interaction events.
* Use the {@link FacebookFragment#newInstance} factory method to
* create an instance of this fragment.
*/

您应该使用 newInstance,而不是无参构造函数。

关于java - Facebook 登录使应用程序崩溃并出现 java.lang.ClassCastException : LoginActivity must implement OnFragmentInteractionListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24715921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com