Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 活动正在被破坏_Java_Android_Android Activity_Ondestroy - Fatal编程技术网

Java 活动正在被破坏

Java 活动正在被破坏,java,android,android-activity,ondestroy,Java,Android,Android Activity,Ondestroy,我只想感谢昨天回复我帖子的人,这对我帮助很大,但现在话题不同了。我设法修复了NPE,但显然我的活动被破坏了 这是logcat: 03-26 06:55:27.411: E/AndroidRuntime(1321): java.lang.IllegalStateException: Activity has been destroyed 03-26 06:55:27.411: E/AndroidRuntime(1321): at android.support.v4.app.Fragmen

我只想感谢昨天回复我帖子的人,这对我帮助很大,但现在话题不同了。我设法修复了NPE,但显然我的活动被破坏了

这是logcat:

03-26 06:55:27.411: E/AndroidRuntime(1321): java.lang.IllegalStateException: Activity has been destroyed
03-26 06:55:27.411: E/AndroidRuntime(1321):     at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1342)
03-26 06:55:27.411: E/AndroidRuntime(1321):     at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595)
03-26 06:55:27.411: E/AndroidRuntime(1321):     at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574)
03-26 06:55:27.411: E/AndroidRuntime(1321):     at As2.packageTK.TicTacToeGame.changeLayout(TicTacToeGame.java:157)
03-26 06:55:27.411: E/AndroidRuntime(1321):     at As2.packageTK.TicTacToeGame.checkTurn(TicTacToeGame.java:132)
03-26 06:55:27.411: E/AndroidRuntime(1321):     at As2.packageTK.PlayerTurn1$1.onClick(PlayerTurn1.java:34)
03-26 06:55:27.411: E/AndroidRuntime(1321):     at android.view.View.performClick(View.java:4202)
以下是位于my TictoEgame FragmentActivity类中的checkTurn()和changeLayout():

public class TicTacToeGame extends FragmentActivity{

    //fields..
    public int checkTurn()
    {
        if(turn == 1)
        {
            changeLayout(turn);
            turn = 2;
            return 1;
        }
        else
        {
            changeLayout(turn);
            turn = 1;
            return 2;
        }
    }

    //changeLayout method
    public void changeLayout(int turn)
    {
        FragmentManager fm       = getSupportFragmentManager();
        Fragment        fragment = fm.findFragmentById(R.id.fragment_container);
        FragmentTransaction ft;

        if(turn == 1) //if its player 1's turn
        {  
            if(fragment == null) //checks wether the current framelayout contains a fragment or not
            {   
                ft = fm.beginTransaction();
                ft.add(R.id.fragment_container, new PlayerTurn1());
                ft.commit(); 
                //setPlayer1();
            }
            else
            {
                ft = fm.beginTransaction();
                ft.replace(R.id.fragment_container, new PlayerTurn1());
                ft.commit();
                //setPlayer1();

            }
        }
        else
        {   
            if(fragment == null)
            {
                ft = fm.beginTransaction();;
                ft.add(R.id.fragment_container, new PlayerTurn2());
                ft.commit(); 
                //setPlayer2();
            }
            else
            {
                ft = fm.beginTransaction();;
                ft.replace(R.id.fragment_container, new PlayerTurn2());
                ft.commit(); 
                //setPlayer2();
            }
        }
    }
}
以下是我的片段的onCreatedActivity和onCreateView:

 public View onCreateView(LayoutInflater inflater,
        ViewGroup container, Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.playerturn1, container, false);


        return view;
    }

        public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);

            doneP1 = (Button) getActivity().findViewById(R.id.doneP1);
            //resetP1 = (Button) this.getActivity().findViewById(R.id.resetP2);

            doneP1.setOnClickListener(new View.OnClickListener() {          
                public void onClick(View v) {   
                    object.checkTurn();
                }
            });
        }

有什么想法吗?

问题似乎出在第34行“Player1”类的“onClick”方法中。第34行是我的括号的结尾。也许我调用object.checkTurn()时出错了?您可以在onClick中调试代码,并获得有关问题的正确见解,是吗?签出后很冷,我修复了它,花了我几个小时,代码工作正常。我正在发布一个新问题,稍后我将发布解决方案