将genric类作为片段传递

时间:2016-05-09 09:00:03

标签: android android-fragments

我正在创建传递扩展片段的类名的实用程序类。但片段方法在方法声明中不可用。 用于返回片段标记的代码段。

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();
    }

1 个答案:

答案 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类作为参数传递,那么您可以实现为该片段生成唯一字符串标记的实际目标。