我有一个简单的函数调用: RemoveSpecific(sheetType); // String sheettype我希望它与 a 一起调用,SparseArray因为我将SparseArray根据 来操作特定的sheetType. 传递这不是问题,但我希望 SparseArray 成为动态类型??(不确定这种事情是否存在)如果我只是将特定的 SparseArray 传递给函数,这将节省我编写多个 if 语句的时间。请明确: RemoveSpecific(sheetType, frgag1); //SparseArray<FirstSectionFragment> RemoveSpecific(sheetType, frgag2); //SparseArray<SecondSectionFragment>函数本身:if (mPageTitles.size() > 2 && sheetType.equals("somthing")) { mPageTitles.remove(frgag1.get(frgag1.keyAt(frgag1.size() - 1)).getFragContent()); frgag1.delete(mInt); if (fso != null && fso.getfr1Details() != null) fso.getfr1Details().getsubfr1Details().delete(mInt); mInt--; fJobDetails.AnotherFunction("somthing"); dialogRmove.dismiss(); }}获取碎片内容:(called in different fragments)public String getFragContent() { if (mFragContent == null) { Bundle args = getArguments(); mFragContent = args.getString("content"); } return mFragContent; }
3 回答
动漫人物
TA贡献1815条经验 获得超10个赞
您可以将函数定义如下:
public void RemoveSpecific(String sheetType, SparseArray<?> sparseArray)
{
//your code
}
您甚至可以删除String sheetType并检查sparseArray函数内的类型,如下所示:
public void RemoveSpecific(SparseArray<?> sparseArray)
{
if(sparseArray.size() > 0)
{
switch(sparseArray.get(0).getClass().getName())
{
case "FirstSectionFragment":
break;
case "SecondSectionFragment":
break;
}
}
}
慕勒3428872
TA贡献1848条经验 获得超6个赞
public void RemoveSpecific(String sheetType, SparseArray<? extends Fragment> DunnoPossible){}
HUH函数
TA贡献1836条经验 获得超4个赞
从表面上看:
public void RemoveSpecific(String sheetType, SparseArray<? extends Fragment> array);
但是,为了获得更详细的答案,我需要查看您的实现RemoveSpecific
添加回答
举报
0/150
提交
取消