0

enter image description hereタブ付きアクティビティのボタンを追加する

こんにちは。

私のプロジェクトでは10個の断片があり、フラグメント1に「ボタンを追加」ボタンを追加しました。このボタンをクリックすると、新しいボタンが線形レイアウトで作成されました。しかし、問題がありますこの後、たとえば、別のタブに移動すると、私のボタンが消去されます。なぜこれが起こっていますか?どうすればこの問題を解決できますか?

ありがとう:)ありがとう:)

私の "ボタンを追加"コード;

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);  
    } 

答えて

0

あなたのフラグメントとonCreateViewのボタンがリストにない場合は、それらのボタンを再作成する必要があります。

0

あなたはボタンonPause() を保存する必要があり、onResume()

+0

は、どのように私はonPauseやonResumeを使用することができますか? – metomero

+0

この回答を見るhttp://stackoverflow.com/questions/15313598/once-for-all-how-to-correctly-save-instance-state-of-fragments-in-back-stack – medbenjemaa

0
  1. で変数内のボタンの数を保存し、OnSaveInstanceStateに入れて再作成。
  2. numButtons変数のonCreateViewに復元します。
  3. 変数が0より大きい場合、ビューにボタンを追加します。
  4. ボタンで、追加ボタンを押すたびに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); 
        } 
    
関連する問題