方向更改后片段中的按钮不起作用

时间:2016-10-21 15:08:56

标签: android-fragments android-orientation

代码在第一次正常工作但是当我将屏幕旋转到横向时,它会禁用我的片段按钮,即使在我将方向更改回正常(纵向)后它也不再可用。为什么会这样???

主要活动

public class MainActivity extends AppCompatActivity {


Button button;
EditText editText;
TextView textView;
fragment_one fragment_one;
FragmentManager fragmentManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    fragment_one = new fragment_one();
    fragmentManager = getSupportFragmentManager();
    fragmentManager.beginTransaction().add(R.id.container,fragment_one).commit();

    button = (Button) findViewById(R.id.mybutton_main);
    textView = (TextView) findViewById(R.id.mytextView_main);
    editText = (EditText) findViewById(R.id.myedittext_main);


    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            textView.setText("button Clicked");
            editText.setText("button Clicked");
        }
    });


}

}

片段

public class fragment_one extends Fragment implements View.OnClickListener {


Button button;
TextView textView;
public fragment_one() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment_fragment_one, container, false);
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    button = (Button) getActivity().findViewById(R.id.mybutton_frag);
    textView = (TextView) getActivity().findViewById(R.id.mytextView_frag);
    button.setOnClickListener(this);



}

@Override
public void onClick(View v) {

    textView.setText("clicked");
}
}

1 个答案:

答案 0 :(得分:0)

试试这个:

        if (savedInstanceState == null) {
            fragment_one = new fragment_one();
            fragmentManager = getSupportFragmentManager();
            fragmentManager.beginTransaction()
                    .add(R.id.container,fragment_one)
                    .commit();
        }