我目前有兩個活動,MainActivity 和 ResultActivity,它們都將使用相同的片段 - 收藏夾。我的問題是:如何知道哪個活動包含片段?例如,我在活動 ResultActivity 中有一個片段 A,我如何知道片段 A 是否包含在 ResultActivity 或 MainActivity 中?
uj5u.com熱心網友回復:
您可以檢查此活動的實體。
getActivity() - 可以回傳空值,所以你需要檢查這個。
爪哇
if (getActivity() != null && getActivity() instanceof MainActivity) {
// TODO
} else if (getActivity() !=null && getActivity() instanceof ResultActivity) {
// TODO
}
科特林
if (activity !=null && activity is MainActivity) {
// TODO
} else if (activity !=null && activity is ResultActivity) {
// TODO
}
編輯:您還可以使用另一種方法requireActivity不同之處在于您收到 notNull 值,但如果活動為 null 您可以獲得IllegalStateException。
requireActivity() - 回傳notNull值但可以拋出例外。
try {
if (requireActivity() instanceof MainActivity) {
// TODO
} else if (requireActivity) instanceof ResultActivity) {
// TODO
}
}catch (Exception e){}
科特林
try {
if (requireActivity() is MainActivity) {
// TODO
} else if (requireActivity) is ResultActivity) {
// TODO
}
}catch (Exception e){}
uj5u.com熱心網友回復:
我認為這對你來說是最好的做法。
要獲得 Activity,您應該使用 requireActivity()
要獲得 Context 你應該使用 requireContext()
// for kotlin
fun isMainActivity(): Boolean {
return requireActivity() is MainActivity
}
public boolean isMainActivity() {
return requireActivity() instanceof MainActivity;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/373199.html
標籤:安卓 android-fragments 安卓x android-api-30
上一篇:AWSSDK上的回呼和協程
