基本上我要在两个不同的活动中使用一个片段。除了片段中的一个方法,我想改变一些东西。那么我该如何获取正在使用片段的活动名称,以便根据当前活动的名称进行操作。
基本上我要在两个不同的活动中使用一个片段。除了片段中的一个方法,我想改变一些东西。那么我该如何获取正在使用片段的活动名称,以便根据当前活动的名称进行操作。
在 Java
中尝试:
getActivity().getClass().getSimpleName()
getActivity()
方法时要小心,否则它将返回null。在Kotlin
中尝试:
activity?.javaClass?.simpleName
activity::javaClass.name
- Ambranactivity?.javaClass?.simpleName
if(isAdded()) {
getActivity().getClass().getSimpleName();
}
如果你在另一个类中并且想要获取“初始化类”的名称,那么可以使用上下文来访问它,例如:getContext().getClass().getSimpleName();
范例:
public String getMyActivityName() {
String myActivityName;
myActivityName = getContext().getClass().getSimpleName();
return myActivityName;
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
Toast.makeText(this.getContext(), "myActiveParentClass: "+getMyActivityName(), Toast.LENGTH_SHORT).show();
}
希望它能帮助到有需要的人...
创建自己的接口并在两个活动中实现它,最后将此实例传递给您的片段。
public interface ActivityListener
{
void onClick();
}
使用 this.getClass().getSimpleName()
获取 Activity 的名称。
如果你在 OnClickListener(或其他内部类)的上下文中,需要手动指定类:
MainActivity.class.getSimpleName()
更多细节请查看this链接