Android 抽屉式导航片段 - 不兼容的类型
Android navigation drawer fragment - incompatible types
在 android studio 中,我尝试使用找到的方法 here
从我的导航抽屉中打开一个新片段
不幸的是,我在使用以下方法时遇到错误:
@Override
public void onNavigationDrawerItemSelected(int position) {
// update the main content by replacing fragments
Fragment fragment;
FragmentManager fragmentManager = getSupportFragmentManager();
if(position==1) {
fragment = new BlankFragment(); // This is where it fails with incompatible types
fragmentManager.beginTransaction()
.replace(R.id.container, fragment)
.commit();
}else{
fragment = PlaceholderFragment.newInstance(position +1);
fragmentManager.beginTransaction()
.replace(R.id.container, fragment)
.commit();
}
}
关于导入我用的是支持类型:
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
我的 BlankFragment class 扩展片段:
public class BlankFragment extends Fragment { ... }
问题在于该行:fragment = new BlankFragment();失败并显示消息:
"Incompatible types"
您是否在 BlankFragment 中导入 android.support.v4.app.Fragment
?
否则您正在尝试将常规片段添加到 SupportFragmentManager。这个错误我犯过很多次,一开始很难发现。
在 android studio 中,我尝试使用找到的方法 here
从我的导航抽屉中打开一个新片段不幸的是,我在使用以下方法时遇到错误:
@Override
public void onNavigationDrawerItemSelected(int position) {
// update the main content by replacing fragments
Fragment fragment;
FragmentManager fragmentManager = getSupportFragmentManager();
if(position==1) {
fragment = new BlankFragment(); // This is where it fails with incompatible types
fragmentManager.beginTransaction()
.replace(R.id.container, fragment)
.commit();
}else{
fragment = PlaceholderFragment.newInstance(position +1);
fragmentManager.beginTransaction()
.replace(R.id.container, fragment)
.commit();
}
}
关于导入我用的是支持类型:
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
我的 BlankFragment class 扩展片段:
public class BlankFragment extends Fragment { ... }
问题在于该行:fragment = new BlankFragment();失败并显示消息:
"Incompatible types"
您是否在 BlankFragment 中导入 android.support.v4.app.Fragment
?
否则您正在尝试将常规片段添加到 SupportFragmentManager。这个错误我犯过很多次,一开始很难发现。