当用户点击recyclerview项目时,我需要打开一个新片段。
我正在使用以下代码:
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.action_favourite:
mPref = context.getSharedPreferences(PREF_NAME, MODE_PRIVATE);
SharedPreferences.Editor editor = mPref.edit();
Log.d("HOLA PERFIL", "HE PULSADO EL PRODUCTO: " + tiendas.get(pos).getId_producto());
editor.putInt("ID_PRODUCTO", tiendas.get(pos).getId_producto());
editor.putString("NOMBRE_PRODUCTO", tiendas.get(pos).getNombre_producto());
editor.putString("DESCRIPCION_PRODUCTO", tiendas.get(pos).getDescripcion_producto());
editor.putString("PRESENTACION_PRODUCTO", tiendas.get(pos).getPresentacion_producto());
editor.putString("PRECIO_PRODUCTO", tiendas.get(pos).getPrecio_producto());
editor.putString("ESPECIFICACIONES_PRODUCTO", tiendas.get(pos).getEspecificaciones_producto());
editor.putString("IMAGEN_PRODUCTO", tiendas.get(pos).getImagen_producto());
editor.apply();
DetalleTiendaFragment firstFragment = new DetalleTiendaFragment();
((MainActivity)context).getSupportFragmentManager().beginTransaction()
.add(R.id.frame, firstFragment);
return true;
default:
}
return false;
}
我在其他项目中使用相同的操作,它工作正常,但在这里它不会打开片段,并且不会抛出任何警告或错误:
DetalleTiendaFragment firstFragment = new DetalleTiendaFragment();
((MainActivity)context).getSupportFragmentManager().beginTransaction()
.add(R.id.frame, firstFragment);
答案 0 :(得分:1)
更改此代码
DetalleTiendaFragment firstFragment = new DetalleTiendaFragment();
((MainActivity)context).getSupportFragmentManager().beginTransaction()
.add(R.id.frame, firstFragment);
到此代码
DetalleTiendaFragment firstFragment = new DetalleTiendaFragment();
FragmentTransaction transaction = ((MainActivity)context).getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.frame, firstFragment);
transaction.addToBackStack("firstFragment");
transaction.commit();