Android fragments 显示旧数据的片段

Android fragments 显示旧数据的片段,android-fragments,Android Fragments,我是android编程新手。我正在实现扫描特定库存项目的功能,并在ArrayList中已存在条形码的情况下搜索条形码。如果它存在,那么我将用InvnetoryFind片段替换当前扫描片段,在该片段中,我可以选择更新数量并从ArrayList中完全删除项目 我面临的问题是,在删除库存后,当我再次扫描不同的库存条形码时,在扫描成功后,它将显示InventoryFind片段,其中包含从ArrayList中删除的旧数据。下面是我的代码: 测试阵列列表代码: public static String[]

我是android编程新手。我正在实现扫描特定库存项目的功能,并在ArrayList中已存在条形码的情况下搜索条形码。如果它存在,那么我将用InvnetoryFind片段替换当前扫描片段,在该片段中,我可以选择更新数量并从ArrayList中完全删除项目

我面临的问题是,在删除库存后,当我再次扫描不同的库存条形码时,在扫描成功后,它将显示InventoryFind片段,其中包含从ArrayList中删除的旧数据。下面是我的代码:

测试阵列列表代码:

public static String[] inve = new String[5];
public static ArrayList<String[]> inventory_list = new ArrayList<String[]>();

    inve[0] = "INV45879";
    inve[1] = "Bridge Support Pipe";
    inve[2] = "Pre-insulated pipe supports provide both support and insulation in hot and cold piping applications.Pre-insulated pipe supports provide both support and insulation in hot and cold piping applications.";
    inve[3] = "0885370720679";
    inve[4] = "2";

    inventory_list.add(inve);

    inve = new String[5];

    inve[0] = "INV45880";
    inve[1] = "Cement";
    inve[2] = "Pre-insulated pipe supports provide both support and insulation in hot and cold piping applications";
    inve[3] = "9771234567003";
    inve[4] = "8";

    inventory_list.add(inve);
InventoryFind片段填充数据并正常工作。以下是我单击“删除已填充的库存”时的代码:

public void removeInventory(){
    Shared.inventory_list.remove(inventory_index);
    Toast.makeText(mContext,"Inventory "+inventory_index+" Removed Successfully!", Toast.LENGTH_SHORT).show();

    FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction();
    ft.remove(this);
    ft.replace(R.id.frag_content, new ScanFragment());
    ft.commit();
}
它正在成功删除,但当我再次扫描它时,例如条形码“0885370720679”,它显示了InventoryFound片段上以前的数据。我已经在Logcat(Log.d)中调试了它,我能够看到正确的数据,但它并没有显示在片段中


如有任何建议或指导,将不胜感激

我找到了这个问题的解决办法

当片段位于前台时,它调用onResume()方法。在这个方法中,我调用用户定义的函数,它为片段字段重新设置数据。我不知道这是否是一个正确的方法来解决这个问题,但它的工作为我现在

public void removeInventory(){
    Shared.inventory_list.remove(inventory_index);
    Toast.makeText(mContext,"Inventory "+inventory_index+" Removed Successfully!", Toast.LENGTH_SHORT).show();

    FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction();
    ft.remove(this);
    ft.replace(R.id.frag_content, new ScanFragment());
    ft.commit();
}