片段错误:不兼容的类型,需要android.app.fragment但找到activity.messagefragment

use*_*897 6 android android-fragments

 @Override
public void onDrawerItemSelected(View view, int position) {
    displayView(position);
}

private void displayView(int position) {
    Fragment fragment = null;
    String title = getString(R.string.app_name);
    switch (position) {
        case 0:
            fragment = new HomeFragment();
            title = getString(R.string.title_home);
            break;
        case 1:
            fragment = new FriendsFragment();
            title = getString(R.string.title_friends);
            break;
        case 2:
            fragment = new MessageFragment();
            title = getString(R.string.title_messages);
            break;
        default:
            break;
    }
Run Code Online (Sandbox Code Playgroud)

打印的错误是:

incompatible types,required android.app.fragment but found activity.messagefragment
Run Code Online (Sandbox Code Playgroud)

And*_*eam 24

在您的messagefragment班级中,您需要导入

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

代替

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


小智 5

Activity必须从 扩展AppCompatActivity,然后使用 调用您的片段getSupportFragmentManager,这样就可以了。

它会像这样:

getSupportFragmentManager().beginTransaction().replace(R.id.main_container, TabFragment.newInstance()).commit();
Run Code Online (Sandbox Code Playgroud)


Osk*_*ere 3

您可能包含了错误的类,请检查您的导入语句。

你应该有这个:

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