此程序显示错误 - "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)
您可能已经使用了原生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)
归档时间: |
|
查看次数: |
1059 次 |
最近记录: |