返回片段时,在运行时自动检查切换按钮

时间:2013-06-11 12:54:54

标签: android android-layout android-intent android-fragments

我有2个碎片。

FirstFragment 只有一个按钮。当用户按下按钮时,会显示 SecondFragment

两个片段都在后台。因此,当显示 SecondFragment 时,如果用户按下物理后退按钮,则会显示 FirstFragment

此时一切正常。

现在,在 SecondFragment 布局中,我添加了ToggleButton

<ToggleButton 
    android:id="@+id/my_toggle"
    android:checked="false"

    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textOn="@string/on"
        android:textOff="@string/off"
/>

我的 SecondFragment.java

public class SecondFragment extends Fragment{

 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle){
    super.onCreateView(inflater, container, savedInstanceState);

   //My Toggle Button
    myToggleBtn.setOnCheckedChangeListener(
       new CompoundButton.OnCheckedChangeListener(){
           @Override
           public void onCheckedChanged(CompoundButton buttonView, boolean isChecked){

            Log.v("*TOGGLE CHECK CHANGED*",String.valueOf(isChecked));

            if(isChecked){
                //DO SOME THING 

            }else{  
                //DO SOMETHING ELSE     
            }
           }
        });

        return inflater.inflate(R.layout.second_layout, null);
    }
 ...

 @Override
 public void onDestroy(){
    super.onDestroy();
    //Set my toggle button to unchecked status,when leave this fragment 
    myToggleBtn.setChecked(false);
  }

}

切换按钮在我的 SecondFragment 上正常工作。 但是,如果现在我按下切换按钮进行检查(所以它更改为检查状态),然后按物理后退按钮返回到FirstFragment(调用onDestroy(),将切换按钮设置为取消选中状态),然后再次来到SecondFragment,令人惊讶,此时,在运行时检查ToggleButton,我注意到从LogCat,调用了OnCheckedChangeListener()运行时间,为什么?

P.S。:LogCat显示离开SecondFragment时调用onDestroy()

1 个答案:

答案 0 :(得分:1)

我将myToggleBtn.setChecked(false);onDestroy()移至onStop()后,问题就解决了。感谢。