创建片段并设置视图元素

时间:2018-08-08 21:49:50

标签: android android-fragments fragment android-view

我正在创建一个新的Fragment,并希望设置一些视图元素属性。这是我尝试的方法:

new DefaultSlide()
                .setImage(R.drawable.logo)
                .setTitle("blabla")
                .setText("fubar"));

这是我的DefualtSlide:

public class DefaultSlide extends SlideFragment {

    @BindView(R.id.defaultImage)
    ImageView defImage;
    @BindView(R.id.defaultTitle)
    TextView title;
    @BindView(R.id.defaultText)
    TextView text;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        final View view = inflater.inflate(R.layout.fragment_default_slide, container, false);
        ButterKnife.bind(this, view);
        return view;
    }

    public DefaultSlide setImage(int image) {
        defImage.setImageResource(image);
        return this;
    }

    public DefaultSlide setTitle(String title) {
        this.title.setText(title);
        return this;
    }

    public DefaultSlide setText(String text) {
        this.text.setText(text);
        return this;
    }

    @Override
    public int backgroundColor() {
        return R.color.backgroundColor;
    }

    @Override
    public int buttonsColor() {
        return R.color.colorPrimary;
    }
}

问题是,我得到了一个空指针异常。我的猜测是view元素尚不可见,因此我无法访问它们。创建片段时,如何设置视图服装是否有最佳实践?

1 个答案:

答案 0 :(得分:1)

您必须传递捆绑中的值并在onCreateView中访问它们,并通过传递这些值来调用相关方法。