0

在Android Studio中,我试图从我的导航抽屉内打开一个新的片段,使用该方法发现here的Android导航抽屉片段 - 不兼容的类型

不幸的是我得到下面的方法错误:

@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类扩展片段:

public class BlankFragment extends Fragment { ... } 

问题是,行:fragment = new BlankFragment();与消息失败:

“不兼容类型”

+0

检查您是否在所有课程中使用v4.Fragment版本。 –

+0

请发布您的LogCat。 – JanithaR

回答

2

你在BlankFragment进口android.support.v4.app.Fragment

否则,您正在尝试将常规片段添加到SupportFragmentManager。我多次犯了这个错误,而且一开始很难找到。

+0

显然这是问题所在。 谢谢 – JPJens