我有一個串列,fragments并希望根據fragment type作為引數傳入的內容找到一個特定的串列。有點像這樣:
private fun findFragment(findFragment: Fragment): Fragment {
fragments.forEach {
if (it is findFragment) {
return it
}
}
}
findFragment(MyFragment)
我不想發送實體而是發送型別,如果串列中存在該型別,則應回傳該實體。我在if (it is findFragment)說未決議的參考 findMyFragment 時出錯。
我該如何做到這一點?
uj5u.com熱心網友回復:
第1步:
ft.replace(R.id.content_frame, fragment, **tag**).commit();
第2步:
FragmentManager fragmentManager = getSupportFragmentManager();
Fragment currentFragment = fragmentManager.findFragmentById(R.id.content_frame);
第 3 步:
if (currentFragment.getTag().equals(**"Fragment_Main"**))
{
//Do something
}
uj5u.com熱心網友回復:
這個錯誤是因為你的引數不是 aclass而只是一個variable。您不能使用instanceof或在這種情況下is使用另一個變數。
在這種情況下可能的最接近的解決方案是使用片段的名稱。像這樣的東西:
private fun findFragment(findFragment: String): Fragment? {
val fragments = listOf<Fragment>()
fragments.forEach {
if (it.javaClass.simpleName == findFragment) {
return it
}
}
return null
}
然后你可以呼叫這個方法:
findFragment(MyFragment::class.java.simpleName)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/339702.html
標籤:安卓 科特林 android-fragments 数组列表
