Methods copied from Facebook user guide display error "not applicable"

This program shows an error. "The add (int, Fragment) method in the FragmentTransaction type is not applicable for arguments (int, MainFragment)" in .add (android.R.id.content, mainFragment). MainFragment is a class that extends the fragment.

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);
      }

    }

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;
    }
}
+4
source share
1 answer

You may have used your own Fragmentfor MainFragment, not for support Fragment. Since you are using SupportFragmentManager, and for this you need a support version Fragment.

Replace in MainFragmentimport

import android.app.Fragment;

with

import android.support.v4.app.Fragment;
+7
source

All Articles