我正在创建传递扩展片段的类名的实用程序类。但片段方法在方法声明中不可用。 用于返回片段标记的代码段。
private String createFragmentTag(Class<? extends Fragment> aClass, boolean addArgs) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(aClass.getClass().getSimpleName());
if(addArgs) {
stringBuilder.append("-");
**//here get argument is not calling**
if (aClass.getArguments() != null)
stringBuilder.append(aClass.getArguments().toString());
}
return stringBuilder.toString();
}
答案 0 :(得分:1)
private String createFragmentTag(Fragment fragment, boolean addArgs) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(fragment.getClass().getSimpleName());
if(addArgs) {
stringBuilder.append("-");
**//here get argument is not calling**
if (fragment.getArguments() != null)
stringBuilder.append(fragment.getArguments().toString());
}
return stringBuilder.toString();
}
会工作吗?与评论中提到的一样,aClass
没有getArguments()
方法,因为您还没有实例化它所代表的类。如果您将实际的实例化Fragment
类作为参数传递,那么您可以实现为该片段生成唯一字符串标记的实际目标。