片段内动态添加的视图在更改方向时消失

时间:2015-07-02 14:21:40

标签: android-fragments

我是Android应用程序开发的新手。我有一个片段(其布局包含一个垂直线性布局)。我在线性布局中动态添加一些视图。当我从纵向更改方向到横向时,将重新创建片段的布局,并且所有动态添加的视图都会消失。如何防止片段的布局重新创建?

编辑:下面的代码是片段内部。单击按钮(比如添加按钮)可以动态添加垂直线性布局中的视图,但更改方向会使这些视图消失。

buttonAdd.setOnClickListener(new OnClickListener(){

        @SuppressWarnings("unchecked")
        @Override
        public void onClick(View arg0) {

            methodForCheckEmail(textIn);

            if(textIn.getText().toString().length() == 0) {
                Toast.makeText(getActivity(), "please enter valid email", Toast.LENGTH_LONG).show();
            } else if (textIn.getText().toString().length() > 0 && checkEmail == false) {
                Toast.makeText(getActivity(), "please enter valid email", Toast.LENGTH_LONG).show();
            } else {

                LayoutInflater layoutInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                final View addView = layoutInflater.inflate(R.layout.row2, null);

                final TextView textOut = (TextView) addView.findViewById(R.id.textout);
                textOut.setText(textIn.getText().toString());
                Button buttonRemove = (Button) addView.findViewById(R.id.remove);
                arrayList.add(textIn.getText().toString());

                buttonRemove.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        ((LinearLayout) addView.getParent()).removeView(addView);
                        // textIn.setText("");
                        arrayList.remove(textOut.getText().toString());
                    }
                });
                textIn.setText("");
                container.addView(addView);
            }
            //textIn.setText("");
        }
    });

1 个答案:

答案 0 :(得分:0)

如果您更改了oriantation,将重新创建活动,因此您必须再次添加该片段。

如果您提出问题,请添加代码。你会得到更多的帮助。

使用活动生命周期方法: http://developer.android.com/training/basics/activity-lifecycle/index.html

阅读这篇文章: Activity restart on rotation Android