Android 我的片段仍在UI中

Android 我的片段仍在UI中,android,android-fragments,Android,Android Fragments,这是我第一个通过xml布局打开片段的片段 public class ListFrag extends SherlockFragment implements OnItemClickListener { Context c; List<ReferalRow> referal_RowItems; DoctorDaoImpl doctorDao; DoctorServiceImpl service; DoctorValidator doctorVal

这是我第一个通过xml布局打开片段的片段

public class ListFrag extends SherlockFragment implements OnItemClickListener
{
    Context c;
    List<ReferalRow> referal_RowItems;
    DoctorDaoImpl doctorDao;
    DoctorServiceImpl service;
    DoctorValidator doctorValidator;
    View layoutView;
    ListView doctoListView;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        layoutView = inflater.inflate(R.layout.activity_refer_mangmnt, null);
        return layoutView;
    }
这是我的DetailFrag课程

public class DetailsFrag extends SherlockFragment
{
    ExpandableListView detailList;
    TextView tvMessage;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    contentView = inflater.inflate(R.layout.activity_refer_view, null);
    detailList = (ExpandableListView) contentView.findViewById(R.id.ep_detail_view);
    tvMessage = (TextView)contentView.findViewById(R.id.tv_textView);
    return contentView;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onActivityCreated(savedInstanceState);
    if(id==0)
    {
        detailList.setVisibility(View.GONE);
        tvMessage.setText("Click on the item on the left panel to view the details");
    }
    else
    {
        detailList.setVisibility(View.VISIBLE);
        tvMessage.setVisibility(View.GONE);
}
这是我在LIstFrag中的onItem单击侦听器

FragmentTransaction ft = getFragmentManager().beginTransaction();
        Fragment lastFrag = getFragmentManager().findFragmentByTag("detailfrag");
        if(lastFrag!=null)
        ft.remove(lastFrag);
        Fragment fragment = Fragment.instantiate(c, DoctorDetailsFrag.class.getName(),arguments);
        ft.replace(R.id.detail_fragment, fragment);
        ft.commit();
当我第一次想要在右面板中显示消息时,我需要单击列表中的项目,然后我想要删除该消息。但这里的信息并没有从片段中删除。它显示在新片段的背面。是吗?

试试:

ft.addToBackStack(null)
调用后:ft.remove(lastFrag)

也许此链接可以帮助您了解此交易:

另一种方法是在lastFrag不为null时重用它。然后,在DetailFrag中需要一个从clickListener调用的方法

ft.addToBackStack(null)