只有在应用程序被系统关闭后才尝试运行应用程序的Nullpointexception(Android)

时间:2017-01-15 17:43:19

标签: android nullpointerexception

我注意到我的应用程序只有在打开期间被系统关闭时才会出现nullpointexception。 看我在这里有Activity我从db获取数据并创建一个对象。然后我创建新的Fragment并在创建的对象之前设置为setter。并使用片段管理器显示片段。这里有任何问题,因为在onCreate方法字段中我的对象为null。我确信我选择了对象并且它不是空的。

我从db获取数据并创建Fragment

的活动
public class ActivityForSingle extends AppCompatActivity {
  Employee emloyee;

  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_for_single);
    ...

    getEmployee(); // here I get emplyee from db and create employee object

    SitePersonFragment f = new SitePersonFragment();
            f.setEmpoyee(employee); // here emplyee is not null
            getSupportFragmentManager().beginTransaction().add(R.id.frameForFragment, f, "USER_SITE").commit();


}


public class SitePersonFragment extends Fragment implements Update, DatePickerDialog.OnDateSetListener {

 Employee employee;

  setEmployee(Employee e){
      this.emplyee = e;
  //here e and employee is not null
   }

  @Override
     public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

  //here employee is null
  // why??
 }

发生什么事了?我无法调试因为app被销毁了。

2 个答案:

答案 0 :(得分:0)

  @Override
     public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    //here employee is null
    // why??
 }

因为可能在设置Employee之前创建了视图。

此外,getEmployee() ...是否会返回一些内容?永远不会在您发布的代码中分配emloyee。为什么不是null?

相关:Best practice for instantiating a new Android Fragment(需要Serializable或Parcelable类)

答案 1 :(得分:0)

我改变了'pracownikFragment to f`