Android:将数据从活动传递到片段时出错

Android:将数据从活动传递到片段时出错,android,android-activity,fragment,Android,Android Activity,Fragment,嗨,我是Android编程新手 我创建了一个具有选项卡布局和swipeable视图的应用程序,如下链接所示: 我在活动文件下有1个活动文件TabMainActivity.java和3个片段类 MyTabMainActivity.java引用此xml文件: main_menu.xml <android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" and

嗨,我是Android编程新手

我创建了一个具有选项卡布局和swipeable视图的应用程序,如下链接所示:

我在活动文件下有1个活动文件
TabMainActivity.java
和3个片段类

My
TabMainActivity.java
引用此xml文件:

 main_menu.xml
 <android.support.v4.view.ViewPager   
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/pager"
 android:layout_width="match_parent"
 android:layout_height="match_parent">
 </android.support.v4.view.ViewPager>
MyLockerFragment.java-

 public class MyLockerFragment extends Fragment {
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_mylocker,  
                     container, false);
            Bundle bundle = this.getArguments();
            String email=bundle.getString("email");
}
错误出现在这一行:
String email=bundle.getString(“email”)


我是否遗漏了一些基本信息?

在TabMainActivity.java中:

protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.main_menu);
     String email = "tv.nguyen.2011@sis.smu.edu.sg";
     Bundle bundle=new Bundle();
     bundle.putString("email", email);
     MyLockerFragment fragobj=new MyLockerFragment();
     fragobj.setArguments(bundle);

     //You needed to add this line to the fragment Activity onCreate() method(othwewise the getArguments() would return null):

     getSupportFragmentManager().beginTransaction().add(android.R.id.content, fragobj).commit();


  }//end of of onCreate method
在MyLockerFragment.java中:

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

        String email = getArguments().getString("email");  

        View rootView = inflater.inflate(R.layout.fragment_mylocker,  
                     container, false);          

        return rootView;
    }

“错误在这一行…”那会是什么错误?请在您的问题中发布logcat输出。您好,我在第行看到一个java.lang.NullPointerException错误:当您将“电子邮件”添加到包中,然后再将其传递到您的片段时,
email
是否已初始化?此行
bundle.putString(“email”,email)
您在哪里创建了
电子邮件
变量?一个单独的字符串变量,这没什么问题。你能编辑你的
TabMainActivity.java
代码来展示你是如何以及在哪里声明和初始化这个字符串变量的吗?嗨,我尝试了上面的代码,但我一直在Bundle=this.getArguments()处得到一个java.lang.NullPointerException;String email=bundle.getString(“电子邮件”);
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

        String email = getArguments().getString("email");  

        View rootView = inflater.inflate(R.layout.fragment_mylocker,  
                     container, false);          

        return rootView;
    }