【发布时间】:2017-04-03 23:51:40
【问题描述】:
在我的应用程序中,我有 2 个片段:fragmentDiary 和 fragmentCal。我正在尝试从 fragmentCal 拨打 fragmentDiary 。为此,我在 MainActivity 中创建了一个函数 callFragmentDiary() 。因此,从fragmentCal 调用 MainActivity 中的这个函数。然后这个函数从 MainActivity 调用fragmentDiary。但是我在这个函数的下一行得到了java.lang.IllegalStateException。
ft.replace(R.id.container , fragDiary).commit();
以下是相关代码:
在 fragmentCal.java 中
( new MainActivity()).callFragmentDiary(date);
MainActivity
package com.example.nirvan.finaldiary;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
fragmentDiary fragDiary = new fragmentDiary();
fragmentCal fragCal = new fragmentCal();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ft.add(R.id.container,fragCal).commit();
}
public void callFragmentDiary(int []date){
Bundle bundle=new Bundle();
bundle.putInt("day",date[0]);
bundle.putInt("month",date[1]);
fragDiary.setArguments(bundle);
ft.replace(R.id.container , fragDiary).commit();
}
}
【问题讨论】:
标签: android android-fragments illegalstateexception