我有一個簡單的函數調用: 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
提交
取消