0

在此处输入图像描述

你好。

我有选项卡式活动,我的项目中有 10 个片段,我在片段 1 中添加了“添加按钮”按钮。当我单击此按钮时,新按钮已在线性布局中创建。没关系,但在 this.for 之后我有一个问题例如,如果我转到不同的选项卡,我的按钮将被删除。为什么会这样?我怎么解决这个问题?

谢谢 :)

我的“添加按钮”代码;

public void AddButton(View page){    
       LinearLayout Lay = (LinearLayout) findViewById(R.id.mylayout);    
       Button but = new Button(getApplicationContext());
       but.setText("" + myVec2.size());
       myVec2.add(but);
       mylayout.addView(but);      
   }
4

3 回答 3

0

如果该列表不为空,则需要在 Fragment 和 onCreateView 上包含按钮的列表来重新创建这些按钮。

于 2017-03-13T11:49:04.423 回答
0

您需要保存按钮 onPause() 并重新创建onResume()

于 2017-03-13T11:49:06.650 回答
0
  1. 将按钮的数量保存在变量中并将其放入OnSaveInstanceState.
  2. onCreateView在 numButtons 变量中恢复它。
  3. 如果变量 > 0,则在视图中添加按钮。
  4. 在您的按钮 OnClick 中,每当按下添加按钮时执行 numButton ++。

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)
    
            if (savedInstanceState != null) {
               numButtons = savedInstanceState.getInt(Statics.NUMBER_BUTTONS);
            } else {
               numButtons = 0;
            }
    
           if (numButtons > 0)
              for (int i = 0; i < numButtons; i++) {
           / ** Your Add Button Code ** /
           }
       }
    
       @Override
       public void onSaveInstanceState(Bundle outState) {
           outState.putInt(Statics.NUMBER_BUTTONS, numButtons);
           super.onSaveInstanceState(outState);
       }
    
于 2017-03-14T08:52:32.120 回答