[TableLayout从saveInstanceState还原时不显示

问题描述 投票:0回答:1

我在一个片段中有一个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包中时,什么都不显示。

使用片段中的onActivityCreated。
@Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); ... if (savedInstanceState != null) { //Restore the fragment's state here } }
android android-fragments restore android-tablelayout
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.