片段管理器问题

Fragmentmanager issue

我试图在模板导航抽屉上按下按钮时显示一个片段。我将我的片段命名为 "BluetoothFragment"。 这是我遇到问题的代码:

@Override
public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    int id = item.getItemId();

    if (id == R.id.nav_bluetooth) {
        BluetoothFragment bluetoothFragment = new BluetoothFragment();
        FragmentManager manager = getSupportFragmentManager();
        manager.beginTransaction().replace(R.id.ConstraintLayoutforfragment, bluetoothFragment).commit();

    } else if (id == R.id.nav_file) {

    } else if (id == R.id.nav_watch_import) {

    } else if (id == R.id.nav_account_settings_variant) {

    } else if (id == R.id.nav_share) {

    } else if (id == R.id.nav_send) {

    }

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
    return true;
}

出错的行是:

manager.beginTransaction().replace(R.id.ConstraintLayoutforfragment, bluetoothFragment).commit();

其中 "BluetoothFragment" 给出了错误:

"Wrong 2nd argument type. Found: com.example.tferfilemanager.BluetoothFragment, required: android.support.v4.app.Fragment

欢迎任何帮助和建议

试试这个:

Fragment fragment = new BluetoothFragment();

如果它也不起作用,请检查 BluetoothFragment 是否扩展 android.support.v4.app.Fragment

确保您的 BluetoothFragment.java 扩展 Fragment

同时从 BluetoothFragment.java 中删除 import android.app.Fragment; 并将其替换为

import android.support.v4.app.Fragment;