Java 获取nullpointer异常将数据从活动发送到片段onCreate

Java 获取nullpointer异常将数据从活动发送到片段onCreate,java,android,android-fragments,android-bundle,Java,Android,Android Fragments,Android Bundle,我一直在尝试使用bundle将活动中的字符串数据发送到片段,但当我尝试访问它时,它会给出nullpointerexception 活动中的oncreate方法如下所示 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_chart); // Setup too

我一直在尝试使用bundle将活动中的字符串数据发送到片段,但当我尝试访问它时,它会给出nullpointerexception

活动中的oncreate方法如下所示

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_chart);

    // Setup toolbar and title
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    readDb();
    printChart();
    printTop10();

    Bundle bundle = new Bundle();
    bundle.putString("edttext", myString);
    // set Fragmentclass Arguments
    ToolbarFragment fragobj = new ToolbarFragment();
    fragobj.setArguments(bundle);

}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    String strtext = getArguments().getString("edttext");
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment_toolbar, container, false);
}
onCreateView上的片段如下所示

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_chart);

    // Setup toolbar and title
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    readDb();
    printChart();
    printTop10();

    Bundle bundle = new Bundle();
    bundle.putString("edttext", myString);
    // set Fragmentclass Arguments
    ToolbarFragment fragobj = new ToolbarFragment();
    fragobj.setArguments(bundle);

}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    String strtext = getArguments().getString("edttext");
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment_toolbar, container, false);
}

如果能帮我摆脱空指针,我将不胜感激,我正在尝试将数据发送到片段,以便它可以使用共享按钮共享数据。看起来“edttext”键的获取部分导致了空值,因为它是在没有实际赋值的情况下被触发的,所以我想获取“edttext”具有默认值的键可以避免空值

在片段的oncreateview中这样做

   @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup container,
                     Bundle savedInstanceState) {

//in this line add these "" as a default value to avoid null.

String strtext = getArguments().getString("edttext","");

// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_toolbar, container, false);
  }
编辑

忘记前面的答案,然后执行以下操作:

删除以下内容:

         Bundle bundle = new Bundle();
bundle.putString("edttext", myString);
// set Fragmentclass Arguments
ToolbarFragment fragobj = new ToolbarFragment();
fragobj.setArguments(bundle);
假设您的活动名称为(MyActivity),然后在oncreate下执行此操作

       private String myString="whatever";

       @Override
     protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_chart);

      // Setup toolbar and title
      Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
      setSupportActionBar(toolbar);
      readDb();
      printChart();
      printTop10();


       }


    //add this method (this method will send the myString to fragment)
    public String getmyString(){


   return myString;
   }
现在转到您的片段并将其从oncreateview中删除

    String strtext = getArguments().getString("edttext");
在碎片中这样做

         private String strtext="";

          @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
          Bundle savedInstanceState) {

 //now get the string like that 

  strtext=((MyActivity)getActivity).getmyString();

// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_toolbar, container, false);
}

更新

1) 确保(项目)列表不为空。您应该在填充之前对其进行初始化(为了检测问题,最好显示如何填充项目列表)

2) 在getmystring()方法中尝试以下操作:

         public String getmyString(){

         for(int i=0 ; i<items ; i++){

          myString=items.get(i);
         }

         return myString;
        }
公共字符串getmyString(){

对于(int i=0;i您没有在任何地方处理
fragobj
。您如何将
ToolbarFragment
加载到
活动中?
?它崩溃了,原因是:java.lang.nullpointer异常:尝试调用虚拟方法“java.lang.String android.os.Bundle.getString(java.lang.String,java.lang.String)“在一个空对象引用上,在EDTText之后添加”“您是将(mystring)传递为空还是有值?粘贴(mystring)的代码。如何为(mystring)设置值。我在我的活动中将其设置为全局:private String mystring=“Sending String”;请检查编辑,希望有帮助。