从Facebook登录手册复制的方法显示"不适用"错误

4 android facebook

此程序显示错误 - "FragmentTransaction类型中的方法add(int,Fragment)不适用于.add(android.R.id.content,mainFragment)的参数(int,MainFragment)".MainFragment是一个类扩展片段.

MainActivity.java

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.app.Activity;
import android.content.Intent;
import android.widget.TextView;
import com.facebook.*;
import com.facebook.model.*;
 public class MainActivity extends FragmentActivity {
         private MainFragment mainFragment;
      @Override
      public void onCreate(Bundle savedInstanceState) {

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

      @Override
      public void onActivityResult(int requestCode, int resultCode, Intent data) {
          super.onActivityResult(requestCode, resultCode, data);
          Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
      }

    }
Run Code Online (Sandbox Code Playgroud)

MainFragment.java

import android.annotation.TargetApi;
import android.app.Fragment;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class MainFragment extends Fragment{

    @Override
    public View onCreateView(LayoutInflater inflater, 
            ViewGroup container, 
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.activity_main, container, false);

        return view;
    }
}
Run Code Online (Sandbox Code Playgroud)

bla*_*izz 7

您可能已经使用了原生Fragment的你MainFragment,而不是支持Fragment.因为你正在使用SupportFragmentManager而且这需要支持版本的Fragment.

替换您MainFragment的导入

import android.app.Fragment;
Run Code Online (Sandbox Code Playgroud)

import android.support.v4.app.Fragment;
Run Code Online (Sandbox Code Playgroud)