我在一个片段中有一个tableLayout,当用于填充单元格的信息从OnCreateVIew()的saveInstanceState包中获取时,不显示任何内容>
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = initializeViews(inflater,container); if (savedInstanceState!= null){ cellsTextArrayList = savedInstanceState.getStringArrayList("extractedTextEt"); for (String word: cellsTextArrayList){ addRow(word); } } return rootView; } private void addRow(String word){ final TableRow tr = new TableRow(getActivity().getApplicationContext()); final View view = LayoutInflater.from(getActivity().getApplicationContext()).inflate(R.layout.cell_layout, null); EditText actualCell = view.findViewById(R.id.cell_text); actualCell.setText(word); tr.addView(view); tableLayout.addView(tr); } @Override public void onSaveInstanceState (Bundle outState) { cellsTextArrayList.add("first"); cellsTextArrayList.add("second"); cellsTextArrayList.add("third"); outState.putStringArrayList("extractedTextEt", cellsTextArrayList); super.onSaveInstanceState(outState); }
cellsTextArrayList正在从saveInstanceState对象中恢复,addRow()方法不起作用。我在一个Activity上运行了代码,它起作用了,所以我认为这与Fragment生命周期有关。
我在一个片段中有一个tableLayout,当用于填充单元格的信息来自OnCreateVIew()@Override public ...]的saveInstanceState包中时,什么都不显示。
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
...
if (savedInstanceState != null) {
//Restore the fragment's state here
}
}