相关疑难解决方法(0)

片段中onCreate(),onCreateView()和onActivityCreated()的区别和用法

什么是之间的差异onCreate(),onCreateView()以及onActivityCreated()将它们各自用于片段和什么?

android oncreate android-lifecycle android-fragments fragment-lifecycle

298
推荐指数
3
解决办法
13万
查看次数

Fragment 中的按钮 setOnClickListener onCreateView() 或 onActivityCreated()

通过这个答案, 我无法理解将onClickListener()- insideonCreateView()或 inside放在哪里onActivityCreated(),下面的代码更好地描述了它:

代码 A:(设置按钮点击监听器内onActivityCreated()

  private FloatingActionButton bt;      

  @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
              // do something.
            }
        });
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.first_frag, container, false);
        bt = (FloatingActionButton) v.findViewById(R.id.fab);
        return v;
    }
Run Code Online (Sandbox Code Playgroud)

CODE B:(设置按钮点击监听器里面onCreateView()

    private FloatingActionButton bt;      

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) …
Run Code Online (Sandbox Code Playgroud)

android

7
推荐指数
1
解决办法
3409
查看次数

Android(Fragment) - 是否建议在 onActivityCreated 方法中初始化视图对象?

View片段的变量可以通过onCreateView这种方式在方法中初始化。这里TextView是片段内部。

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragmant_two,container,false);
    if(savedInstanceState == null)
    {

    }
    else
    {
        String data = savedInstanceState.getString("data");
        TextView myText = (TextView)view.findViewById(R.id.text_view);
        myText.setText(data);
    }


    return view;


}
Run Code Online (Sandbox Code Playgroud)

但是我发现里面有一个view是onActivityCreated 用这种方式初始化的。

textView = (TextView) getActivity().findViewById(R.id.text_view);
Run Code Online (Sandbox Code Playgroud)

没有任何理由,我应该选择onActivityCreatedonCreateView

android android-fragments fragment-oncreateview

4
推荐指数
1
解决办法
8804
查看次数