4 android android-fragments fragment-oncreateview
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)
没有任何理由,我应该选择onActivityCreated过 onCreateView?
textView = (TextView) getActivity().findViewById(R.id.text_view);
Run Code Online (Sandbox Code Playgroud)
这将尝试R.id.text_view从您的活动布局中找到带有 id 的视图,而不是您的片段。如果片段本身中存在具有该 id 的视图,那么您应该onCreateView在片段中使用该方法。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragmant_two,container,false);
TextView textView = (TextView) view.findViewById(R.id.text_view);
// bind your data here.
return view;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8804 次 |
| 最近记录: |