片段管理器问题
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;
我试图在模板导航抽屉上按下按钮时显示一个片段。我将我的片段命名为 "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;