片段错误:类型不兼容,需要android.app.Fragment,但找到activity.messagefragment
打印的错误为:片段错误:类型不兼容,需要android.app.Fragment,但找到activity.messagefragment,android,android-fragments,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)
@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;
}
您可能包含了错误的类,请检查您的导入语句 你应该把这个放在里面:
incompatible types,required android.app.fragment but found activity.messagefragment
检查fragment和view的导入必须是相同的
android.app.fragment您需要返回一个android.app.fragment
类的对象,但您没有像案例2那样返回android.app.fragment
。您应该在需要导入的MessageFragment
类中扩展android.app.Fragment
中的MessageFragment
import android.app.Fragment;
而不是
import android.app.Fragment;
转到您遇到问题的tab.class并更改import android.app.Fragment;导入android.support.v4.app.Fragment
它将运行。检查所有片段java类的导入,并确保它们都具有
导入android.app.Fragment代码>
而不是
导入android.support.v4.app.Fragment代码>
它解决了问题。您的活动必须从AppCompatActivity
扩展,然后您使用getSupportFragmentManager
调用您的片段,这应该可以做到
事情是这样的:
import android.support.v4.app.Fragment;
你可以用两种方法来解决它
1-在messagefragment类中,需要导入
import android.app.Fragment;
导入android.app.Fragment;
而不是
导入android.support.v4.app.Fragment
2-你可以像…一样反转它。。。
在messagefragment中,删除导入android.app.Fragment
导入android.support.v4.app.Fragment 这是正确的,如果OP希望避免出现必需的android.app.Fragment
错误消息,则有必要将android.support.v4.app.Fragment
替换为android.app.Fragment